Skip to main content

Troubleshooting

Comparison table

ProblemExternal SDKManaged App
/qefro unreachableCheck customer endpoint, TLS, firewall, pathCheck managed runtime / installation binding
Signature invalidSecret mismatch, body mutated, clock skewPlatform secret / env mismatch
Tool missingRe-register tools in process; Sync ToolsPackage/version; install active; capabilities sync
Wrong workspaceConnection tools enabled on wrong workspaceInstallation binding / workspace headers
Storage unavailableExpected without install scope — use own DBCheck platform.storage, permissions, storage-service
App unavailableCustomer infrastructureQefro runtime / connector lifecycle
Upgrade issueRedeploy webhookSolution upgrade / republish

Protocol error codes

CodeTypical cause
invalid_signatureWrong secret; skew; middleware altered body
protocol_mismatchprotocol_version / header ≠ "1"
invalid_requestMissing tool, or resume fields
not_foundUnknown tool name; expired resume_token
deniedAuth denied
customer_not_foundCustomer resolve/auth failed
person_not_foundPerson required but absent
configuration_errorHandler/platform misconfiguration
internal_errorUncaught exception

HTTP: 401 signature, 400 protocol header mismatch, 404 wrong path, 500 internal.

Connector-manager notes

  • Retryable upstream statuses: 502 / 503 / 504
  • sdk:{connection_id} without endpoint → validation error until registry sync (ACS passes endpoint explicitly)
  • install: targets need SOLUTION_SERVICE_URL and a connector binding

Storage errors (SDK messages)

ctx.storage requires platform.storage.base_url or QEFRO_STORAGE_URL
ctx.storage requires platform.storage.context on tool.invoke
storage.{op} failed ({status}): …

Org Portal (SDK Connections)

SymptomFix
Test Connection failsReachability + secret + ping handler
Sync without workspaceTools snapshot only — select workspace to auto-register
Secret “Missing”Edit connection and set signing secret
last_error on cardRead message; fix webhook; re-test
Connection statusnot_configured | healthy | degraded | disabled

Still stuck?

  1. Confirm SDK version (X-Qefro-Version response header / sdk_version on pong)
  2. Capture request_id / x-qefro-trace-id
  3. Reproduce with mock-order-status-sdk smoke against the same secret scheme