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

  1. Run `vector validate` on both the main config and the test definition to surface the wiring error before the unchecked graph build
  2. Check every `outputs`, `inputs`, and `no_outputs_from` entry in the test definition against real component names in the topology
  3. Remove glob-expanded names (e.g. my_transform.*) from test outputs and re-run to isolate the failing component
  4. 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

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


AI-assisted analysis of vectordotdev/vector@3708c39b12 (2026-08-20). Data as JSON: /api/errors/82e1d093812a52a1. Report an issue: GitHub.