Requests return 429
You’ve reached a plan limit. If your Engine is behind a reverse proxy, check that the proxy isn’t rate-limiting too. If the dashboard also returns429, the monthly bandwidth allowance is used up.
The requests-per-second limit doesn’t apply to signed-in dashboard users.
Traces return 401 or 415
- 401: send an Engine API key in the
X-API-Keyheader. Your license key doesn’t work here. - 415: the endpoint only accepts OTLP over HTTP as protobuf. Set
Content-Type: application/x-protobuf. JSON and gRPC aren’t accepted; if your exporter only speaks gRPC, put an OpenTelemetry Collector in front.
200 response can still contain rejected spans. Check the OTLP response’s
partial-success details and the Engine log.
The dashboard or an assistant shows no threads
- Check you’re looking at the same Engine that receives your data.
- Check the API key is active and can read threads.
- Remove filters (time range, contract, actor) and look again.
- New activity can take a few seconds to appear.
One run shows up as many small threads
Each OpenTelemetry trace becomes its own thread unless you tell Threadify which spans belong together. Set the samethreadify.thread_key (or
workflow.run_id) on every span in a run, and a different value for each run.
Threads that were already split stay split. See
Choose the thread identity.
Browser sign-in fails
- Set
server.browser_originto the exact address in the browser bar, includinghttps://. - Serve the dashboard at the root of the hostname, and forward WebSocket upgrades.
- Use one hostname consistently.
localhostand127.0.0.1count as different sites. - Anyone other than the license owner needs an invitation from Team first.
A wait timed out
A timeout never means permission. Don’t run the action.- If you were waiting for validation after reporting and the error has a
stepId, callwaitForValidationwith it. Don’t report the step again. - If you were waiting for permission, retry with the same
invocationIdso you don’t claim a second grant.