DioxusLabs/dioxus · error

SelectorPath is full

Error message

SelectorPath is full

What it means

TinyVec::push exceeded its fixed PATH_LENGTH backing array. Selector paths in the stores subscription system have a hard-coded maximum depth; pushing more path keys than that capacity panics instead of growing, since the array is inline.

Source

Thrown at packages/stores/src/subscriptions.rs:195

            length: 0,
            path: [0; PATH_LENGTH],
        }
    }

    pub(crate) fn from_slice(path: &[PathKey]) -> Self {
        let mut out = Self::new();
        for key in path {
            out.push(*key);
        }
        out
    }

    pub(crate) const fn push(&mut self, index: u16) {
        if self.length < self.path.len() {
            self.path[self.length] = index;
            self.length += 1;
        } else {
            panic!("SelectorPath is full");
        }
    }
}

impl Deref for TinyVec {
    type Target = [u16];

    fn deref(&self) -> &Self::Target {
        &self.path[..self.length]
    }
}

#[derive(Default)]
pub(crate) struct StoreSubscriptionsInner {
    root: SelectorNode,
    hasher: std::collections::hash_map::RandomState,
}

View on GitHub (pinned to 24f6a829df)

Solutions

  1. The SelectorPath reached its capacity. Reduce selector path depth by splitting nested accesses.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/stores/src/subscriptions.rs:195 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of DioxusLabs/dioxus@24f6a829df (2026-08-23). Data as JSON: /api/errors/208101d7a7d09acf. Report an issue: GitHub.