BigPizzaV3/CodexPlusPlus · error · anyhow::Error

session export task failed: {error}

Error message

session export task failed: {error}

What it means

Wrapped failure thrown by LauncherDataService::export_session_file when the spawn_blocking task around session_share::export_rollout fails at the task level (JoinError), reported as "session export task failed: {error}". The rollout export never completed; domain errors from export_rollout itself are propagated separately after the await.

Source

Thrown at apps/codex-plus-launcher/src/main.rs:774

    }

    fn storage_adapter(&self) -> codex_plus_data::SQLiteStorageAdapter {
        let allowed_db_paths = self.candidate_db_paths();
        codex_plus_data::SQLiteStorageAdapter::new(
            self.db_path.clone(),
            codex_plus_data::BackupStore::new(self.backup_dir.clone()),
        )
        .with_allowed_db_paths(allowed_db_paths)
        .with_codex_home(codex_plus_core::codex_sqlite::default_codex_home_dir())
    }

    async fn export_session_file(&self, session: SessionRef) -> anyhow::Result<Value> {
        let home = codex_plus_core::codex_sqlite::default_codex_home_dir();
        tokio::task::spawn_blocking(move || {
            codex_plus_core::session_share::export_rollout(&home, &session.session_id)
        })
        .await
        .map_err(|error| anyhow::anyhow!("session export task failed: {error}"))?
    }

    async fn import_session_file(&self, payload: Value) -> anyhow::Result<Value> {
        let home = codex_plus_core::codex_sqlite::default_codex_home_dir();
        tokio::task::spawn_blocking(move || {
            codex_plus_core::session_share::import_rollout(&home, &payload)
        })
        .await
        .map_err(|error| anyhow::anyhow!("session import task failed: {error}"))?
    }
}

struct LauncherRuntimeService {
    debug_port: Mutex<u16>,
    websocket_url: Mutex<Option<String>>,
    user_scripts: UserScriptManager,
}

View on GitHub (pinned to f2074595a2)

Solutions

  1. 查看导出任务的 panic 日志
  2. 确认 session_id 对应的 rollout 文件存在
  3. 重试导出
  4. 修复 export_rollout 内对缺失文件/空数据的 unwrap
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at apps/codex-plus-launcher/src/main.rs:774 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/33e14268bf51d983. Report an issue: GitHub.