zed-industries/zed · error · LanguageNotFound

language not found

Error message

language not found

What it means

Raised via get_or_load_language in language_for_name_or_extension when the lookup by name or file extension found no registered language: find_by_name_or_extension returned None, so there is no language id to load and the returned future resolves to the LanguageNotFound error. This is the normal outcome for an unknown language name or unrecognized file extension.

Source

Thrown at crates/language/src/language_registry.rs:596

    }

    pub fn language_name_for_extension(self: &Arc<Self>, extension: &str) -> Option<LanguageName> {
        self.state
            .try_read()
            .and_then(|state| state.available_languages.find_name_by_extension(extension))
    }

    pub fn language_for_name_or_extension(
        self: &Arc<Self>,
        string: &str,
    ) -> impl Future<Output = Result<Arc<Language>>> {
        let language_id = self
            .state
            .read()
            .available_languages
            .find_by_name_or_extension(string);
        let rx = self.get_or_load_language(language_id);
        async move { rx.await? }
    }

    pub fn available_language_for_name(self: &Arc<Self>, name: &str) -> Option<AvailableLanguage> {
        let state = self.state.read();
        state.available_languages.find_by_exact_name(name)
    }

    /// Look up a language by its modeline name (vim filetype or emacs mode).
    ///
    /// This performs a case-insensitive match against:
    /// 1. Explicit modeline aliases defined in the language config
    /// 2. The language's grammar name
    /// 3. The language name itself
    pub fn available_language_for_modeline_name(
        self: &Arc<Self>,
        modeline_name: &str,
    ) -> Option<AvailableLanguage> {
        self.state

View on GitHub (pinned to 5a9b9558db)

Solutions

  1. Check the language name spelling or the file extension; use one Zed registers (or configure a custom file type association)
  2. Install/enable the language extension that registers this language
  3. Handle the None/error case in the caller by falling back to plain text
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at crates/language/src/language_registry.rs:588 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zed-industries/zed@5a9b9558db (2026-08-20). Data as JSON: /api/errors/42806b7aa6f9794e. Report an issue: GitHub.