EpicGames/lore · error
Networking not supported on this OS
Error message
Networking not supported on this OS
What it means
On platforms without Unix-domain-socket networking support, lore compiles a stub UdsListener whose constructor unconditionally panics. This is a deliberate compile-time platform substitution: the type exists so code compiles, but any use is a programming error on that OS.
Solutions
- Run on a supported Unix-like OS where the real UDS networking module is compiled.
- Choose a transport other than Unix domain sockets (e.g. TCP) when targeting unsupported platforms.
- Guard UDS code paths behind a runtime/compile-time platform check so new() is never reached on stub platforms.
Example fix
// before
let listener = UdsListener::new()?;
// after
#[cfg(unix)]
let listener = UdsListener::new()?;
#[cfg(not(unix))]
return Err(anyhow!("Unix domain sockets not available on this platform")); Defensive patterns
Strategy: type-guard
Validate before calling
if !cfg!(unix) { /* skip or use TCP transport */ } Type guard
fn uds_supported() -> bool { cfg!(unix) } Try / catch
// panic, not recoverable: prevent call instead
if !uds_supported() { return Err(anyhow!("UDS unsupported here")); }
let listener = UdsListener::new()?; Prevention
- Gate all UDS code with #[cfg(unix)].
- Expose a platform-capability check for transports.
- Run CI on the target OS before shipping UDS-based configs.
- Default to TCP on non-Unix platforms.
When it happens
Trigger: Calling UdsListener::new() on an OS where the networking stub (stub.rs) is selected by cfg instead of the real Unix-socket implementation.
Common situations: Building/running lore on Windows or another unsupported platform; accidentally enabling a Unix-socket transport feature on a target that only compiles the stub.
Understand the failure class
Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.
Related errors
- Failed to open log file
- {e}
- could not get available parallelism
- hex encode failed
- PresignTokenPayload is always serializable
AI-assisted analysis of EpicGames/lore@074eb0b0d1 (2026-09-13).
Data as JSON: /api/errors/a97937991c845ad1.
Report an issue: GitHub.
Appendix: source
Thrown at lore/src/remote/network/stub.rs:15
// SPDX-FileCopyrightText: 2026 Epic Games, Inc.
// SPDX-License-Identifier: MIT
use crate::remote::network::UdsAcceptError;
use crate::remote::network::UdsConnectionError;
use crate::remote::network::UdsListenerError;
pub fn uds_supported() -> bool {
false
}
pub struct UdsListener {}
impl UdsListener {
pub fn new() -> Result<UdsListener, UdsListenerError> {
panic!("Networking not supported on this OS")
}
pub fn accept(&self) -> Result<UdsStream, UdsAcceptError> {
panic!("Networking not supported on this OS")
}
}
pub struct UdsStream {}
impl UdsStream {
#[allow(unreachable_code)]
pub fn writer(&mut self) -> &mut impl std::io::Write {
panic!("Networking not supported on this OS");
Box::leak(Box::<Vec<u8>>::new(Vec::new()))
}
#[allow(unreachable_code)]
pub fn reader(&mut self) -> &mut impl std::io::Read {View on GitHub (pinned to 074eb0b0d1)