Skip to content

placement in production misroutes ctx.exports.<WorkerEntrypoint>.fetch() to main fetch (RPC still works) #6215

@alexeichhorn

Description

@alexeichhorn

Summary

I have a minimal reproducible case where ctx.exports.<WorkerEntrypoint>.fetch(...) is misrouted in production when placement is enabled.

  • RPC method call on the same entrypoint still works.
  • Local wrangler dev behaves correctly.
  • Production behaves correctly again if placement is removed.

This appears to be a runtime routing issue triggered by placement in production.

Repro links

What the repro does

/probe calls the same WorkerEntrypoint in two ways:

  1. ctx.exports.OutboundProbe({}).someOtherFunc() (RPC)
  2. ctx.exports.OutboundProbe({}).fetch(new Request(...)) (fetch)

Expected behavior

Call (2) should execute OutboundProbe.fetch and return text starting with FROM_OUTBOUND_CLASS.

Actual behavior (production with placement enabled)

  • Call (1) works and returns FROM_RPC_METHOD ...
  • Call (2) is routed to main index.fetch and returns FROM_INDEX_DEFAULT

Current sample output from live repro:
{"directRpc":"FROM_RPC_METHOD mode=no-props","directFetchText":"FROM_INDEX_DEFAULT","note":"Direct ctx.exports fetch should hit OutboundProbe.fetch and start with FROM_OUTBOUND_CLASS."}

Isolation results

  • Local wrangler dev: correct behavior.
  • Production + placement enabled: misrouting reproduced.
  • Production + placement removed: correct behavior.
  • Changing placement region still reproduces (not region-specific).

Environment

  • wrangler: 4.68.1
  • typescript: 5.9.3
  • compatibility_date: 2026-02-25
  • Placement config currently:
    "placement": { "region": "aws:eu-central-1" }

Fresh production request IDs

(maybe helpful)

  1. date: Sun, 01 Mar 2026 17:49:36 GMT, cf-ray: 9d59ffcbc99429a7-ZRH
  2. date: Sun, 01 Mar 2026 17:49:37 GMT, cf-ray: 9d59ffd34eca7a85-ZRH
  3. date: Sun, 01 Mar 2026 17:49:38 GMT, cf-ray: 9d59ffda0dcab159-ZRH

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions