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'"
@staticmethodView on GitHub (pinned to 7fcbca7e62)
Solutions
- Run the library on a supported platform (Linux x64/arm64 or macOS x64/arm64).
- On Windows, use WSL2 with a supported Linux platform and run the server inside it.
- Check how platform_id is derived in your environment (PlatformId helper) and confirm your OS/arch maps to a supported value.
- 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
- Run the Perl server only on Linux x64/arm64 or macOS x64/arm64
- Use WSL2 on Windows
- Check container arch (avoid 32-bit images); verify with `uname -m`
- Pin base images to known-supported architectures
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
- Unsupported Linux architecture: {machine}
- Unsupported macOS architecture: {machine}
- Unsupported Windows architecture: {machine}
- Unsupported operating system: {system}
- Unsupported Linux architecture: {machine}. luau-lsp only pro
AI-assisted analysis of oraios/serena@7fcbca7e62 (2026-08-29).
Data as JSON: /api/errors/e34ee688b7c46712.
Report an issue: GitHub.