Skip to main content
decide() returns served: "fallback". Users see your control, which is correct behaviour; the cause is in result.error.code.

Every call times out

If every decision is timeout while direct curl calls are fast, the deadline is being spent before the request starts: a client constructed per request, a cold start, or an event loop busy with other work. Construct the client once, and measure result.durationMs.

Only some calls fall back

A fallback rate of a few percent on a cold edge runtime is normal and costs nothing but a few unrecorded decisions. Log error.code and requestId and look for a pattern by runtime or region.

Without the SDK

The same causes apply; the status and error code in the response tell them apart. See Errors.