oraios/serena · error · RuntimeError

Platform {platform_id} is not supported for Perl at the mome

Error message

Platform {platform_id} is not supported for Perl at the moment

What it means

Raised by PerlLanguageServer._setup_runtime_dependencies when the detected platform_id is not in the whitelist of supported platforms (Linux x64/arm64, OSX, OSX_x64, OSX_arm64). The bundled Perl language-server setup only supports those platforms and refuses to run elsewhere.

Source

Thrown at src/solidlsp/language_servers/perl_language_server.py:97

        return super().is_ignored_dirname(dirname) or dirname in ["blib", "local", ".carton", "vendor", "_build", "cover_db"]

    @classmethod
    def _setup_runtime_dependencies(cls) -> str:
        """
        Check if required Perl runtime dependencies are available.
        Raises RuntimeError with helpful message if dependencies are missing.
        """
        platform_id = PlatformUtils.get_platform_id()

        valid_platforms = [
            PlatformId.LINUX_x64,
            PlatformId.LINUX_arm64,
            PlatformId.OSX,
            PlatformId.OSX_x64,
            PlatformId.OSX_arm64,
        ]
        if platform_id not in valid_platforms:
            raise RuntimeError(f"Platform {platform_id} is not supported for Perl at the moment")

        perl_version = cls._get_perl_version()
        if not perl_version:
            raise RuntimeError(
                "Perl is not installed. Please install Perl from https://www.perl.org/get.html and make sure it is added to your PATH."
            )

        perl_ls_version = cls._get_perl_language_server_version()
        if not perl_ls_version:
            raise RuntimeError(
                "Found a Perl version but Perl::LanguageServer is not installed.\n"
                "Please install Perl::LanguageServer: cpanm Perl::LanguageServer\n"
                "See: https://metacpan.org/pod/Perl::LanguageServer"
            )

        return "perl -MPerl::LanguageServer -e 'Perl::LanguageServer::run'"

    @staticmethod

View on GitHub (pinned to 7fcbca7e62)

Solutions

  1. Run the library on a supported platform (Linux x64/arm64 or macOS x64/arm64).
  2. On Windows, use WSL2 with a supported Linux platform and run the server inside it.
  3. Check how platform_id is derived in your environment (PlatformId helper) and confirm your OS/arch maps to a supported value.
  4. If on a supported platform but still failing, verify the arch detection (e.g. aarch64 vs x86_64 mismatch in the container/emulator, Rosetta misreporting arch).

Example fix

// before (Windows host)
server = PerlLanguageServer("C:\\repo")  # unsupported platform
// after
# inside WSL2 (Ubuntu x64)
server = PerlLanguageServer("/mnt/c/repo")
Defensive patterns

Strategy: validation

Validate before calling

import platform, sys
def supported_platform():
    if sys.platform.startswith("win"):
        return False
    machine = platform.machine().lower()
    return machine in ("x86_64", "amd64", "arm64", "aarch64")

Prevention

When it happens

Trigger: Instantiating the Perl language server on an unsupported platform_id — e.g. Windows, Linux x86 (32-bit), FreeBSD, or an unusual/unknown platform identifier produced from the host OS/arch.

Common situations: Running on Windows; running on a 32-bit Linux; running on Alpine/ARM variants mapping to an unsupported id; container images whose platform detection yields an unexpected id.

Related errors


AI-assisted analysis of oraios/serena@7fcbca7e62 (2026-08-29). Data as JSON: /api/errors/e34ee688b7c46712. Report an issue: GitHub.