vectordotdev/vector · error
errors ignored
Error message
errors ignored
What it means
This panic comes from Graph::new_unchecked in Vector's topology builder. It builds the component graph (sources/transforms/sinks) with ignore_errors=true, assuming wiring problems were already validated away; if graph construction still returns errors, expect("errors ignored") aborts the process. The only production caller is the `vector test` harness (src/config/unit_test/mod.rs:389,409,450), which builds unchecked graphs after substituting test-harness sources and sinks.
Source
Thrown at src/config/graph.rs:85
pub fn new(
sources: &IndexMap<ComponentKey, SourceOuter>,
transforms: &IndexMap<ComponentKey, TransformOuter<String>>,
sinks: &IndexMap<ComponentKey, SinkOuter<String>>,
schema: schema::Options,
wildcard_matching: WildcardMatching,
) -> Result<Self, Vec<String>> {
Self::new_inner(sources, transforms, sinks, false, schema, wildcard_matching)
}
pub fn new_unchecked(
sources: &IndexMap<ComponentKey, SourceOuter>,
transforms: &IndexMap<ComponentKey, TransformOuter<String>>,
sinks: &IndexMap<ComponentKey, SinkOuter<String>>,
schema: schema::Options,
wildcard_matching: WildcardMatching,
) -> Self {
Self::new_inner(sources, transforms, sinks, true, schema, wildcard_matching)
.expect("errors ignored")
}
fn new_inner(
sources: &IndexMap<ComponentKey, SourceOuter>,
transforms: &IndexMap<ComponentKey, TransformOuter<String>>,
sinks: &IndexMap<ComponentKey, SinkOuter<String>>,
ignore_errors: bool,
schema: schema::Options,
wildcard_matching: WildcardMatching,
) -> Result<Self, Vec<String>> {
let mut graph = Graph::default();
let mut errors = Vec::new();
// First, insert all of the different node types
for (id, config) in sources.iter() {
graph.nodes.insert(
id.clone(),
Node::Source {View on GitHub (pinned to 3708c39b12)
Solutions
- Run `vector validate` on both the main config and the test definition to surface the wiring error before the unchecked graph build
- Check every `outputs`, `inputs`, and `no_outputs_from` entry in the test definition against real component names in the topology
- Remove glob-expanded names (e.g. my_transform.*) from test outputs and re-run to isolate the failing component
- If validation passes but `vector test` still panics, file a Vector issue with config plus test definition: new_unchecked panicking means validation let an invalid graph through
Example fix
# before (test file references a renamed component) [[tests]] name = "check" [tests.writers] outputs = ["my_sink"] # my_sink was renamed to http_out # after [[tests]] name = "check" [tests.writers] outputs = ["http_out"]
Defensive patterns
Strategy: validation
Validate before calling
# CI gate before any `vector test` run vector validate /etc/vector/vector.toml vector validate /path/to/*.toml # include test definitions # exit code != 0 lists the wiring errors the unchecked graph build would panic on
Prevention
- Run vector validate on configs and test definitions in CI before vector test
- Keep test output names in lockstep with component names; rename in both places atomically
- Avoid glob-expanded component names in test outputs unless the wildcard rules are also tested
When it happens
Trigger: Running `vector test` on a config whose graph cannot be built after test sinks are injected: an `outputs`/`no_outputs_from` entry referencing a component that does not exist, a transform wired to a missing input, or glob-expanded component names that break edges after test filtering rewrites the component set.
Common situations: A unit-test file whose outputs point at a sink or transform renamed in the main config; typos in component names; wildcard (*) outputs interacting with test component filtering; Vector version upgrades that tighten graph validation rules.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- Replacing unknown sink from fanout: {id}
- Pausing unknown sink from fanout: {id}
- join error or bad poll
- source output misconfigured - output for port {:?} missing
- failed to read glob pattern
AI-assisted analysis of vectordotdev/vector@3708c39b12 (2026-08-20).
Data as JSON: /api/errors/82e1d093812a52a1.
Report an issue: GitHub.