Skip to main content

Debugging guide

Trace a failing request from deployment selection through routing, cache, and Function execution.

Use a request-first workflow. Avoid changing multiple platform settings before identifying which layer failed.

1. Identify the deployment

Confirm the exact URL, deployment ID, source revision, environment, and status. Reproduce against the immutable deployment URL when possible.

If the deployment URL works but the production domain does not, investigate domain assignment, DNS, TLS, or host routing rather than rebuilding the application.

2. Capture the request ID

Inspect the response for the Easel request ID and use it to open request details, logs, traces, cache diagnostics, and security events.

curl -i https://example.com/problem-path

3. Determine which layer answered

Check whether the request was:

  • Blocked or challenged by security controls
  • Redirected or rewritten
  • Served from CDN cache
  • Served as a static asset
  • Routed to a Function
  • Returned as not found

4. Inspect Function execution

For dynamic requests, review application logs, error details, duration, memory, initialization state, region, and trace spans.

Correlate downstream database or API failures with the same trace where possible.

5. Compare environments

Differences between Preview and Production often come from environment variables, production-only domains, credentials, cache state, or build settings.

6. Reproduce minimally

Reduce the failing route to its smallest input. Test without browser extensions, service workers, cached redirects, or authenticated state when relevant.

7. Check platform status and limits

Review the status page and applicable request, Function, deployment, and observability limits.

Escalation details

When contacting support, include:

  • Workspace and project
  • Deployment ID and URL
  • Exact UTC timestamp
  • Request ID
  • Route and HTTP method
  • Expected and actual behavior
  • Reproduction steps
  • Relevant logs with secrets removed