{"record":{"id":"537804a049643f90","repo":"block/buzz","slug":"configuration-error-error","errorCode":null,"errorMessage":"Configuration error: {error}","messagePattern":"Configuration error: (.+?)","errorType":"console","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/buzz-relay/src/main.rs","lineNumber":202,"sourceCode":"        telemetry::TracerInit::Disabled => tracing_init.succeed(),\n        telemetry::TracerInit::ExporterBuildFailed(_) => {\n            tracing_init.degrade(LifecycleReason::ExporterBuild);\n            boot.mark_degraded(LifecycleReason::ExporterBuild);\n            // Do not log the raw exporter error: OTLP endpoint URLs can carry\n            // credentials. The bounded lifecycle reason is sufficient here.\n            warn!(\"Failed to build OTLP trace exporter; distributed tracing disabled\");\n        }\n    }\n\n    info!(\"Starting buzz-relay\");\n\n    let (next_boot, config) = boot\n        .run_required(StartupPhase::ConfigLoad, Config::from_env, |_error| {\n            LifecycleReason::ConfigInvalid\n        })\n        .map_err(|error| {\n            error!(\"Invalid configuration: {error}\");\n            anyhow::anyhow!(\"Configuration error: {error}\")\n        })?;\n    boot = next_boot;\n\n    let key_failure = if config.relay_private_key.is_some() {\n        LifecycleReason::RequiredInvalid\n    } else {\n        LifecycleReason::Missing\n    };\n    let (next_boot, relay_keypair) = boot.run_required(\n        StartupPhase::KeyLoad,\n        || relay_keypair_from_config(config.relay_private_key.as_deref()),\n        |_error| key_failure,\n    )?;\n    boot = next_boot;\n    info!(\n        bind_addr = %config.bind_addr,\n        relay_url = %config.relay_url,\n        health_port = config.health_port,","sourceCodeStart":184,"sourceCodeEnd":220,"githubUrl":"https://github.com/block/buzz/blob/dad5a33865fc81a2e55b3b60746632f615ec1e3a/crates/buzz-relay/src/main.rs#L184-L220","documentation":"Raised in run_relay_main when relay configuration loading/parsing fails (the generic guard at the boot.run_required config phase). The input at fault is the environment/`.env`-derived configuration: missing required values, malformed fields, or invalid combinations. Fatal — the relay logs 'Configuration error: {error}' and exits before binding any services, since running with an invalid config would be unsafe.","triggerScenarios":"Thrown at crates/buzz-relay/src/main.rs:202 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Read the chained error to identify the exact missing or malformed config field and fix .env / environment variables accordingly","Compare the configuration against .env.example for required keys and expected formats","Validate database/Redis URLs, listen addresses, and key material before restarting"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"dad5a33865fc81a2e55b3b60746632f615ec1e3a","analyzedAt":"2026-09-05T18:13:50.666Z","contentChangedAt":"2026-09-05T18:13:50.666Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}