BigPizzaV3/CodexPlusPlus · error · anyhow::Error

供应商配置总开关已关闭,未同步 live 配置

Error message

供应商配置总开关已关闭,未同步 live 配置

What it means

Guard in sync_active_relay_to_home: the relay-profiles master switch (relay_profiles_enabled) is off in BackendSettings, so the live Codex home config is intentionally not touched. A deliberate bail-out — the caller requested a sync while the feature is disabled.

Source

Thrown at apps/codex-plus-manager/src-tauri/src/commands.rs:735

fn restore_optional_file_bytes(path: &Path, contents: Option<&[u8]>) -> anyhow::Result<()> {
    match contents {
        Some(contents) => codex_plus_core::settings::atomic_write(path, contents)?,
        None => match std::fs::remove_file(path) {
            Ok(()) => {}
            Err(error) if error.kind() == std::io::ErrorKind::NotFound => {}
            Err(error) => return Err(error.into()),
        },
    }
    Ok(())
}

fn sync_active_relay_to_home(
    settings: &BackendSettings,
    home: &Path,
) -> anyhow::Result<codex_plus_core::relay_config::RelayApplyResult> {
    if !settings.relay_profiles_enabled {
        anyhow::bail!("供应商配置总开关已关闭,未同步 live 配置");
    }
    let relay = settings.active_relay_profile();
    if relay.relay_mode == codex_plus_core::settings::RelayMode::Aggregate {
        if settings.active_aggregate_relay_profile().is_none() {
            anyhow::bail!("当前聚合供应商配置不完整");
        }
        let aggregate = settings
            .active_aggregate_relay_profile()
            .ok_or_else(|| anyhow::anyhow!("当前聚合供应商配置不完整"))?;
        return codex_plus_core::relay_config::apply_relay_config_to_home_with_session_provider(
            home,
            &codex_plus_core::protocol_proxy::local_responses_proxy_base_url(
                codex_plus_core::protocol_proxy::DEFAULT_PROTOCOL_PROXY_PORT,
            ),
            "codex-plus-aggregate",
            codex_plus_core::settings::RelayProtocol::Responses,
            codex_plus_core::protocol_proxy::DEFAULT_PROTOCOL_PROXY_PORT,
            aggregate.session_provider,

View on GitHub (pinned to f2074595a2)

Solutions

  1. Enable the relay-profiles master switch if sync is intended
  2. Skip the sync call when the feature is knowingly disabled
  3. No repair needed; live config was left untouched by design
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at apps/codex-plus-manager/src-tauri/src/commands.rs:735 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/920f2f6ad5650e2f. Report an issue: GitHub.