# rfp agent browser automation failed on bonfire two factor prompt: how to fix it

Agents cannot receive SMS or authenticator codes, so a 2FA prompt is a hard stop. Design the flow to pause and notify a human, who completes the step and hands the session back.

```text
rfp agent browser automation failed on bonfire two factor prompt
```

## When to use this skill
- Agent stalls at a two-factor code prompt
- Agent retries login in a loop at the 2FA step

## When not to use this skill
- Login fails before 2FA appears (a credentials issue)
- 2FA code is rejected (a code issue)

## Tool compatibility
Agent browser automation and 2FA. Related area: browser automation.

Related area: proposal automation and agent-assisted RFP workflows.

Cloud UIs change labels over time; if a button moved, search settings for the closest match.

## Before you start
- Sign in to the tool and keep one tab open so sessions stay clean
- Copy the exact error text and note the time it happened
- Set aside 15 to 20 minutes; most of these resolve in a single pass

## Quick diagnosis
Make sure this is the right skill before you invest the 15 minutes.
- If you are dealing with agent stalls at a two-factor code prompt, start at step 1 below.
- If instead login fails before 2FA appears (a credentials issue), stop here; you need a different skill.
- If neither quite matches, compare your screen against the verbatim error block at the top; that block is exactly what this skill covers.

## Fix it in steps
### 1. Detect the 2FA prompt explicitly

```
Check for the verification-code input after login submits.
```
Expected: Expected: agent recognizes the 2FA state instead of timing out.

### 2. Pause and notify a human

```
Stop the run and send the human a message with the session context.
```
Expected: Expected: human knows exactly which step needs them.

### 3. Human completes verification

```
The human enters the code in the same browser session.
```
Expected: Expected: portal advances past the verification step.

### 4. Agent resumes after handoff

```
Agent continues from the post-verification page.
```
Expected: Expected: run completes without re-triggering 2FA.

## Confirm each step worked
Run through this checklist before moving on. If a check fails, redo that step instead of pushing ahead.
- Step 1 (detect the 2FA prompt explicitly): Expected: expected: agent recognizes the 2FA state instead of timing out.
- Step 2 (pause and notify a human): Expected: expected: human knows exactly which step needs them.
- Step 3 (human completes verification): Expected: expected: portal advances past the verification step.
- Step 4 (agent resumes after handoff): Expected: expected: run completes without re-triggering 2FA.

## Quick recap
1. Detect the 2FA prompt explicitly
2. Pause and notify a human
3. Human completes verification
4. Agent resumes after handoff

## Still stuck?
Gather three things: the exact error text, the time it happened, and what changed just before it broke.
Check the vendor status page for an active incident. Then open a support ticket with those three things;
it cuts the back-and-forth in half. For agent runs, attach the last 50 lines of the agent log too,
since the loop or timeout signature in the log usually names the cause.

## Variant phrasings
### agent bonfire 2fa failed
Human-in-the-loop handoff is the fix. If this matches what you saw, the steps above apply as written.

### agent stuck two factor vendor portal
Detect, pause, hand off. If this matches what you saw, the steps above apply as written.

## Why it happens
Two-factor authentication is designed to require a human device, so no agent-side retry logic can pass it legitimately. The correct pattern is explicit detection plus a clean handoff, not credential stuffing.

## Edge cases
- Never store 2FA bypasses; treat the prompt as a hard boundary
- Some portals offer trusted-device enrollment that skips 2FA for 30 days
- Time the handoff well before the bid deadline; humans are the bottleneck

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_yTkkrZeESRfSO_yZymsCzA
