Skip to content

[Bug]: schedule_task on a linked environment fails when the project uses the environment's default model #37291

Closed

Description

@s0up4200

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/server

Steps to reproduce

Note

Written by Claude Opus 5.5 on behalf of @s0up4200, and filed at their request.

This is the part of #19342 that is still open. The triage comment said that #22732 fixed t3_thread_launch, and asked for a new issue for schedule_task.

  1. Link two environments, A and B. On B, set a default model in Settings → Threads (Claude Opus 5.5, effort high). Leave the project's own model on Inherit.
  2. In a thread on A, have the agent call schedule_task with the environmentId of B and the id of a project on B. Use a fixed_time schedule and bindToCurrentThread: false.
  3. Control: set defaultModelSelection on the same project with t3_project_update, and call schedule_task again with the same input.

Expected behavior

schedule_task uses the model that a new thread in that project on B gets. That is the project override if one exists, else the default model of B.

Actual behavior

Step 2 fails on all four projects that I tried. The error is under Logs.

Step 3 succeeds. On B, settings.json sets defaultModelSelection to Claude Opus 5.5 with effort high, and sets projectSettingsFolded: true. The project overrides have no defaultModelSelection.

B receives the forwarded call as the session of the link, with no calling thread (PeerForwarding.ts#L105). So schedule_task on B has no parent model, and falls back to projectDefaultModelSelection (OrchestratorMcpService.ts#L2236). That function reads only project.defaultModelSelection from the project record (L1284-L1294). Since #22732, t3_thread_launch uses the effective defaults of the project for a caller with no thread. schedule_task does not.

The open PR #35002 adds an optional target to schedule_task. Without a target, it keeps this fallback and this error.

Impact

Minor bug or occasional failure

Version or commit

0.1.10-nightly.20261115.4723

Environment

Target environment B: Linux, T3 Code server 0.1.10-nightly.20261115.4723. Calling environment A: Linux, 0.1.10-nightly.20261113.4643. Agent: Claude Code (Claude Opus 5.5) through the T3 MCP server.

Logs or stack traces

invalid_request: Project <projectId> has no default model, so this caller cannot pick one for it.

Screenshots, recordings, or supporting files

No response

Workaround

Set defaultModelSelection on the project record with t3_project_update. Only a thread in full-access mode can call it. The UI setting does not help, because it writes to projectSettingsOverrides in settings.json, which this check does not read.

Activity

  1. added
    bugSomething is broken or behaving incorrectly.
    needs-triageIssue needs maintainer review and initial categorization.
    on Nov 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken or behaving incorrectly.needs-triageIssue needs maintainer review and initial categorization.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions