influxdata/influxdb · error · RepositoryError

with name ' ' not found

Error message

{resource} with name '{name}' not found

What it means

RepositoryError::NotFound is the sentinel variant returned by catalog repository lookups when no resource of the given kind (table, database, etc., labeled via CatalogResource::CATEGORY) exists under the supplied name. It is a generic not-found guard over catalog metadata, so it fires on any name-based fetch that misses, including lookups after a resource was renamed or deleted. The failing input is the `name` field carried in the variant.

Solutions

  1. Check for typos or case differences in the name
  2. Create the resource first if it genuinely does not exist
  3. Confirm the name was not renamed or deleted by another writer
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at influxdb3_catalog/src/repository.rs:35 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19). Data as JSON: /api/errors/1e7d81ed6c776830. Report an issue: GitHub.

Appendix: source

Thrown at influxdb3_catalog/src/repository.rs:35

///
/// Carries the resource label (from [`CatalogResource::CATEGORY`]) and the
/// offending `id` so the error message is self-identifying without requiring
/// callers to add context.
#[derive(thiserror::Error)]
pub enum RepositoryError<I: CatalogId> {
    #[error("{resource} with id {id} already exists")]
    AlreadyExists { resource: &'static str, id: I },

    #[error("{resource} with name '{name}' already exists")]
    AlreadyExistsByName {
        resource: &'static str,
        name: String,
    },

    #[error("{resource} with id {id} not found")]
    NotFound { resource: &'static str, id: I },

    #[error("{resource} with name '{name}' not found")]
    NotFoundByName {
        resource: &'static str,
        name: String,
    },
}

// Manual `Debug` impl so the enum does not impose a `Debug` bound on `I` ---
// every concrete [`CatalogId`] in this crate derives `Debug`, but the trait
// itself does not require it.
impl<I: CatalogId> std::fmt::Debug for RepositoryError<I> {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self {
            Self::AlreadyExists { resource, id } => f
                .debug_struct("AlreadyExists")
                .field("resource", resource)
                .field("id", &format_args!("{id}"))
                .finish(),
            Self::AlreadyExistsByName { resource, name } => f

View on GitHub (pinned to 06200ef96b)