Skip to content

V2 cross-provider sub-agent loses NEW_TASK body in encrypted_content #92

Description

@webmastertorch

Current status

This remains an upstream-tracking issue, not an unfixed ordinary OpenCodex routing bug.

OpenCodex now has an experimental mitigation:

Those changes make some native-parent -> routed-child V2 workflows usable, but they do not change the underlying wire contract. The original task can still arrive only as backend ciphertext, and a routed provider cannot decrypt that ciphertext itself.

PR #1540 explicitly treats recovery as a compatibility path rather than a protocol fix. The upstream plaintext/task-delivery limitation therefore remains the close condition for this issue.

Summary

With multiAgentMode: "v2", a native Codex parent can select a routed child model, but the child task may be delivered only through encrypted_content. A third-party routed provider cannot read backend ciphertext and therefore cannot execute the task without an additional compatibility mechanism.

The original reproduction used:

  • parent: native gpt-5.6-sol
  • child: routed xai/grok-4.5
  • fork_turns: "none"
  • V2 collaboration mode

The child model override was applied correctly, but the NEW_TASK payload was not available as plaintext.

Current expected behavior

OpenCodex should preserve the following contract:

  1. Native V2 passthrough remains unchanged.
  2. Routed V2 tasks that are already readable continue normally.
  3. An unreadable encrypted task fails closed unless the user has explicitly enabled an eligible recovery path.
  4. Experimental recovery must never silently weaken credential-destination, loopback, cancellation, privacy, or cache boundaries.
  5. Recovery failure must preserve the clear unreadable_encrypted_agent_task class rather than sending ciphertext to the routed model as if it were usable input.

User-visible mitigation

For heterogeneous native-parent -> routed-child delegation, users currently have two practical choices:

  • use V1/plaintext-compatible collaboration behavior; or
  • explicitly enable the experimental V2 recovery path introduced by fix(agents): add opt-in encrypted v2 recovery #1540, accepting its documented quota, latency, backend-coupling, and fidelity limitations.

The Dashboard compatibility UX is tracked separately in #1533.

Why this stays open

The experimental recovery path is not proof that the transport problem is solved. It performs a bounded compatibility recovery around an upstream ciphertext contract.

Close this issue only when the upstream Codex collaboration surface provides a supported task-delivery contract that routed children can consume directly, or when the upstream limitation otherwise ceases to apply.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtoolstool_calls, MCP, web-search / sidecar toolsupstream-trackingBlocked on an upstream (Codex CLI/Desktop) fix; kept open for discoverability

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions