nikivdev/code · error
trace is only supported for Codex sessions; use `f codex tra
Error message
trace is only supported for Codex sessions; use `f codex trace ...`
What it means
Raised by `run_provider` in src/ai.rs when the `trace` action is dispatched against a Cursor session. Tracing is a Codex-only integration; the Cursor match arm rejects it explicitly with `bail!`. The error text routes the user to the Codex subcommand.
Source
Thrown at src/ai.rs:597
}
Some(ProviderAiAction::EnableGlobal { .. }) => {
bail!(
"global Codex enablement is only supported for Codex sessions; use `f codex enable-global`"
);
}
Some(ProviderAiAction::Daemon { .. }) => {
bail!("daemon is only supported for Codex sessions; use `f codex daemon ...`");
}
Some(ProviderAiAction::Memory { .. }) => {
bail!("memory is only supported for Codex sessions; use `f codex memory ...`");
}
Some(ProviderAiAction::Telemetry { .. }) => {
bail!(
"telemetry is only supported for Codex sessions; use `f codex telemetry ...`"
);
}
Some(ProviderAiAction::Trace { .. }) => {
bail!("trace is only supported for Codex sessions; use `f codex trace ...`");
}
Some(ProviderAiAction::ProjectAi { .. }) => {
bail!(
"project-ai is only supported for Codex sessions; use `f codex project-ai ...`"
);
}
Some(ProviderAiAction::SkillEval { .. }) => {
bail!(
"skill-eval is only supported for Codex sessions; use `f codex skill-eval ...`"
);
}
Some(ProviderAiAction::SkillSource { .. }) => {
bail!(
"skill-source is only supported for Codex sessions; use `f codex skill-source ...`"
);
}
Some(ProviderAiAction::Agent { .. }) => {
bail!("agent is only supported for Codex sessions; use `f codex agent ...`");View on GitHub (pinned to a747e741ae)
Solutions
- Use the Codex path: `f codex trace ...`
- For Cursor transcripts, limit yourself to read-only commands: `f cursor list`, `f cursor copy`, `f cursor context`
- Guard dispatch code so Trace is only reachable for Provider::Codex
- Update aliases/scripts that assume trace works for every provider
Example fix
// before f cursor trace --session abc // after f codex trace --session abc
Defensive patterns
Strategy: validation
Validate before calling
fn supports_trace(provider: Provider) -> bool {
matches!(provider, Provider::Codex)
}
if !supports_trace(provider) {
eprintln!("trace requires Codex: use `f codex trace ...`");
return;
} Type guard
fn is_codex(provider: Provider) -> bool {
matches!(provider, Provider::Codex)
} Try / catch
if let Err(e) = run_provider(provider, Some(ProviderAiAction::Trace { .. })) {
if e.to_string().contains("trace is only supported for Codex") {
eprintln!("rerun as: f codex trace ...");
} else {
return Err(e);
}
} Prevention
- Only issue `trace` when the session provider is Codex
- Parameterize scripts with the correct provider instead of swapping one CLI word
- Document Cursor as a read-only provider in team docs
- Add a wrapper that rewrites `f cursor trace` to `f codex trace`
When it happens
Trigger: Running `f cursor trace ...`, or calling run_provider(Provider::Cursor, Some(ProviderAiAction::Trace{..})). Occurs whenever a Codex-oriented trace workflow is pointed at Cursor transcripts.
Common situations: Reusing a Codex trace script with the provider argument swapped, muscle-memory CLI usage, tooling that enumerates all `f <provider>` subcommands without capability checks.
Related errors
- telemetry is only supported for Codex sessions; use `f codex
- project-ai is only supported for Codex sessions; use `f code
- skill-eval is only supported for Codex sessions; use `f code
- agent is only supported for Codex sessions; use `f codex age
- log is only supported for Codex sessions; use `f codex log .
AI-assisted analysis of nikivdev/code@a747e741ae (2026-09-01).
Data as JSON: /api/errors/bf69e2ad34399cc2.
Report an issue: GitHub.