BigPizzaV3/CodexPlusPlus · error

Codex App directory not found

Error message

Codex App directory not found

What it means

DefaultLaunchHooks::resolve_app_dir converts the result of resolve_codex_app_dir_with_saved into a Result. That resolver returns None when neither the explicit app_dir argument nor the saved codex_app_path setting points at an existing Codex App directory, so launching cannot proceed without a valid app location.

Source

Thrown at crates/codex-plus-core/src/launcher.rs:532

    std::env::var("CODEX_PLUS_HELPER_BIND")
        .ok()
        .map(|value| value.trim().to_string())
        .filter(|value| !value.is_empty())
        .unwrap_or_else(|| "127.0.0.1".to_string())
}

#[async_trait(?Send)]
impl LaunchHooks for DefaultLaunchHooks {
    fn resolve_app_dir(
        &self,
        app_dir: Option<&Path>,
        settings: &BackendSettings,
    ) -> anyhow::Result<PathBuf> {
        crate::app_paths::resolve_codex_app_dir_with_saved(
            app_dir,
            Some(settings.codex_app_path.as_str()),
        )
        .ok_or_else(|| anyhow::anyhow!("Codex App directory not found"))
    }

    fn select_debug_port(&self, requested: u16) -> u16 {
        crate::ports::select_packaged_codex_debug_port(requested)
    }

    fn select_helper_port(&self, requested: u16) -> u16 {
        crate::ports::select_platform_loopback_port(requested)
    }

    async fn load_settings(&self) -> anyhow::Result<BackendSettings> {
        SettingsStore::default().load()
    }

    async fn run_provider_sync(&self) -> anyhow::Result<()> {
        anyhow::bail!("provider sync requires launcher hooks with codex-plus-data integration")
    }

View on GitHub (pinned to f2074595a2)

Solutions

  1. Set the Codex app path in CodexPlusPlus settings
  2. Pass an explicit app_dir when launching
  3. Verify the Codex application is installed at the configured location
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at crates/codex-plus-core/src/launcher.rs:532 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/ebb533b962d96cb1. Report an issue: GitHub.