Observability troubleshooting
Diagnose missing requests, missing logs, empty traces, and numbers that don't match.
Start from a request ID, invocation ID, deployment ID, or exact timestamp whenever you can.
A request doesn't appear in Logs
- Check the time range, environment, host, and deployment filters.
- Confirm the request reached this project and not another one.
- Wait a moment. Requests appear shortly after they complete.
Traffic Easel can't attribute to a project doesn't appear in project Logs.
A request has no log lines
- A cache
HITor a static file runs no function, so it logs little or nothing. Check the request's Cache section. - Clear the console level filters.
- Very chatty functions can lose lines past the capture bound. See Observability limits.
- A process that crashes can exit before its last lines are sent.
The Trace is empty under Invoke function
Platform spans appear without any setup. Your own spans appear only after you add OpenTelemetry:
- Confirm instrumentation registers when the server starts.
- Deploy the instrumented build.
- Send a request to a path that runs instrumented code, and open its Trace.
Spans from work after the response appear only if that work finishes in time. See Tracing.
Billed duration or init is empty
These fields come from the function wake and can arrive shortly after the response. Refresh the request details after a moment, or open the wake in Invocations.
The cache result isn't what you expected
Read X-Easel-Cache, Cache-Control, and Set-Cookie on the live response.
See CDN troubleshooting.
A client saw a challenge but Logs shows no firewall action
The challenge and the request the client makes after passing it are separate
requests. Search Logs for firewallAction:challenge around that time, and
check whether attack challenge mode is on or a custom rule challenges that
path. See Security events.
Charts and Logs don't match exactly
Charts aggregate into time buckets; Logs lists individual requests. Use the same time range, environment, and deployment on both. Delivery is best-effort, so small differences are expected.
Contact support
Include:
- Workspace, project, environment, and domain
- Request ID, plus the deployment ID and invocation ID when relevant
- The approximate time, with time zone
- What you expected and what happened
- Output of
easel logs --request-id <request-id> --expand