Skip to main content
Observe

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 HIT or 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:

  1. Confirm instrumentation registers when the server starts.
  2. Deploy the instrumented build.
  3. 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