Skip to content

Troubleshooting ​

Find your symptom below and keep the exact error text for retries or reports. Controls are in Using the app; recovery actions and limits are in Runs and recovery and Configuration.

ChatGPT Codex sign-in ​

SymptomCauseFix
Device code instead of a browser callbackAnother process owns loopback port 1455Complete the device flow, or stop that process and retry.
Browser opened, OpenFlow keeps waitingCallback didn't reach http://localhost:1455/auth/callback, or the state/callback expiredAllow loopback traffic in local firewall/proxy tools. Retry if expired.
Sign in with ChatGPT after a previous connectionRefresh session missing, invalidated, reused, or expiredSign in again.
Workspace/entitlement rejectionSelected account or workspace lacks Codex accessSwitch accounts or ask the workspace administrator.
HTTP 403 from the Codex backendThe private ChatGPT backend may have changed or rejected third-party originator: openflowAn OpenAI API key won't fix this. Verify current official Codex behavior and the documented compatibility boundary.
Usage/rate-limit errorChatGPT plan/workspace limits, separate from OpenAI API billingCheck those limits.

OAuth credentials are plain text in the local OpenFlow settings.json, like stored provider API keys. Normal settings IPC and logs redact them. In Settings → Providers, with ChatGPT (Codex) selected, Disconnect deletes them.

Provider not ready ​

SymptomCauseFix
Header shows API key missing, or Run stays disabledNo resolvable key for the active API-key providerIn Settings → Providers, select the active profile, add a key or set the provider env var (such as OPENAI_API_KEY), and save.
Readiness message on the authoring or run screenSame, or a shared/node provider is incompleteGive every provider the workflow references valid auth and a model, or switch profile or model.
ChatGPT (Codex) not readyNo stored OAuth session, or expired loginWith ChatGPT (Codex) active in Settings → Providers, select Sign in with ChatGPT, or Disconnect and sign in again. See ChatGPT Codex sign-in.
Bedrock not readyAWS credentials or region misconfiguredSet profile/region in the Bedrock provider panel and verify the credential chain.

How credentials resolve (full rules):

  • API-key providers: transient run input, then the stored settings.json key, then the environment variable.
  • ChatGPT (Codex): needs a stored refreshable login; ignores OPENAI_API_KEY.
  • Bedrock: the AWS credential chain and configured region/profile.

Chat attachments ​

SymptomCauseFix
File stays pending with a size/type errorMore than 4 files, one over 10 MiB, total over 25 MiB, unsupported extension, empty file, or content/type mismatchRemove it, or export it as JPEG, PNG, GIF, WebP, PDF, TXT, Markdown, CSV, JSON, HTML, CSS, JavaScript, or Python, and retry.
Provider rejects an accepted image or documentThe transport can serialize it, but the selected model/account doesn't accept that mediaSwitch to a media-capable model for that provider. Custom models remain provider-dependent.
“missing or corrupt” attachmentManaged run copy is absent, changed, or fails its saved size/hash/type checksReattach the original. OpenFlow rejects the request before provider HTTP.
Image card has no previewBounded local preview failed, or its run data is unavailableThe message still shows as a generic attachment card. Reattach only if the provider also reports an attachment error.
Chat deletion reports cleanup pendingMetadata was deleted, but run-directory cleanup didn't finishRestart or open run history to retry quarantined cleanup. Don't hand-edit chats.json.

MCP servers ​

State / symptomCauseFix
Not installedRegistry package metadata exists without a completed exact-version installReview the package, version, and command, install it, then run Approve & Test.
Needs configCommand or required environment/header input is emptyEnter it on the server row in Settings → MCP Servers, save, and test again. Credential values go in mcp-secrets.json, out of settings payloads and exports.
Auth requiredOAuth token absent, expired without refresh, revoked, or rejectedUse Connect OAuth or Re-authenticate, verify the displayed scopes and issuer, and test again.
MCP command npx was not foundOpenFlow launched outside your interactive shell, so the GUI inherited a minimal PATHConfirm command -v npx in the embedded Terminal, then retry the test. The Terminal, bash tools, and MCP probes, installs, and runs resolve the same login-shell PATH; explicit command or MCP PATH config still wins.
OAuth browser does not openProtected-resource discovery, authorization-server discovery, PKCE validation, or client registration failed before browser launchRead the row's OAuth setup error and retry Authenticate OAuth (any remote server). Fix the server's OAuth metadata, or enter its pre-registered client ID if dynamic registration is unavailable. A changed authorization-server issuer triggers fresh registration automatically.
Atlassian OAuth does not openOlder Rovo URLs (/v1/sse or /v1/mcp) use retired or incomplete OAuth discovery metadataRe-import or retry the server. OpenFlow migrates Atlassian Rovo to https://mcp.atlassian.com/v1/mcp/authv2, refreshes stale DCR metadata, and starts OAuth from the current authorization server.
Atlassian consent rejects the callbackAtlassian organization policy blocks the local callback originAsk an Atlassian admin to allow http://localhost:*/** and http://127.0.0.1:*/** in Rovo MCP domain settings, then retry in a fresh browser session.
Failed · PreflightMissing executable, rejected remote URL, unavailable secret ref, or stale trustRead the exact row error, fix config or runtime, then Retry. Security-relevant changes need fresh approval.
Failed · Connect/List tools/CloseProcess/HTTP initialization, capability negotiation, pagination, or shutdown failedUse Copy diagnostics. Retry only as a user action; OpenFlow doesn't replay ambiguous tool calls automatically.
Enabled server skipped during a runThat server failed setup; others continueRead the system chat message, disable or fix the named server, and restart the run if you need its tools.
Sampling/elicitation card appearsAn allowed server made a server-to-client request from an active MCP toolReview the server and originating tool, then approve once or deny. Stop cancels pending callbacks.

Local children run only during probes and runs; OpenFlow keeps no background MCP process. Remote endpoints require HTTPS unless explicit loopback development is enabled. Private/link-local targets and unsafe redirects stay blocked.

Workflow validation and authoring ​

SymptomCauseFix
Run disabled, or canvas shows validation errorsEmpty graph, cycle, missing endpoint, or invalid schema or handoffFix the highlighted node or edge, keeping every Markdown handoff heading. Confirm validation clears before selecting Run. See Workflow authoring.
Create with AI made a proposal but no workflowProposals aren't saved until Create Workflow or Apply Changes succeedsReview the graph and use that action. For a draft left open, choose Resume AI workflow draft.
Project workflow can't be saved or run.flow missing or not writable, or the project is being removed while activeConfirm the folder is writable, stop the active run, and retry. Project files stay under .flow/; see Projects and persistence.

Runs, recovery, and schedules ​

SymptomCauseFix
Node failed or was interrupted, but the run is still activeThe node is waiting for manual retryRead the error, change the model if needed, then select Retry or send a correction in that node's composer. See Retry a node.
Continue isn't availableRun still active, no recoverable checkpoint in this app session, a different run selected, or run completedAnswer active questions and approvals in the conversation. For a durable paused, stopped, or failed run, use Resume run in History when offered.
Scheduled workflow didn't startApp closed, schedule Off, workflow/provider not ready, or project .flow not writableStart OpenFlow, turn the row On, and check Next. Confirm readiness and project write access, then inspect Last and History. See Scheduling.
Run pauses on a tool or questionHuman input or tool approval is pendingAnswer, or approve/deny the tool, in the node conversation. Submitting resumes the active run without Continue. Stopping the run cancels pending callbacks.

For source-checkout failures, see Build and test troubleshooting.

Released under the MIT License.