BigPizzaV3/CodexPlusPlus · error · anyhow::Error

Session file export is unavailable

Error message

Session file export is unavailable

What it means

Sentinel thrown by the default BridgeDataService implementation of export_markdown — wait, of the session-file export route (the trait's fallback body in routes.rs). When the bridge wiring has no real data service behind it, exporting a session file is reported as unavailable instead of returning an empty result; the trigger is invoking session export through a bridge context without a data layer.

Source

Thrown at crates/codex-plus-core/src/routes.rs:123

    async fn upstream_worktree_prepare(&self, payload: Value) -> anyhow::Result<Value>;
    async fn upstream_worktree_create(&self, payload: Value) -> anyhow::Result<Value>;
}

#[async_trait]
pub trait BridgeDataService: Send + Sync {
    async fn delete(&self, session: SessionRef) -> anyhow::Result<DeleteResult>;
    async fn undo(&self, undo_token: String) -> anyhow::Result<DeleteResult>;
    async fn export_markdown(&self, session: SessionRef) -> anyhow::Result<ExportResult>;
    async fn thread_usage_history(&self, session: SessionRef) -> anyhow::Result<Value>;
    async fn find_archived_thread_by_title(
        &self,
        title: String,
    ) -> anyhow::Result<Option<SessionRef>>;
    async fn recover_remote_control_session(&self, _thread_id: String) -> anyhow::Result<Value> {
        anyhow::bail!("Remote Control session recovery is unavailable")
    }
    async fn export_session_file(&self, _session: SessionRef) -> anyhow::Result<Value> {
        anyhow::bail!("Session file export is unavailable")
    }
    async fn import_session_file(&self, _payload: Value) -> anyhow::Result<Value> {
        anyhow::bail!("Session file import is unavailable")
    }
}

pub async fn handle_bridge_request(
    ctx: BridgeContext,
    path: &str,
    payload: Value,
) -> serde_json::Value {
    let started = Instant::now();
    let _ = crate::diagnostic_log::append_diagnostic_log(
        "bridge.request",
        json!({
            "path": path,
            "payload_keys": payload
                .as_object()

View on GitHub (pinned to f2074595a2)

Solutions

  1. 使用支持导出的数据服务实现
  2. 改用其他导出路径
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at crates/codex-plus-core/src/routes.rs:123 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of BigPizzaV3/CodexPlusPlus@f2074595a2 (2026-08-23). Data as JSON: /api/errors/4248550b624719ba. Report an issue: GitHub.