remix-run/remix · error · CliError

RMX_ROUTE_MAP_LOADER_SIGNAL

RMX_ROUTE_MAP_LOADER_SIGNAL

Error message

Route-map loader exited from signal ${signal}.

What it means

loadRawRouteMap spawns a child process to load the route map; if that child exits because it received a signal (e.g. SIGKILL, SIGTERM) rather than exiting normally, this error is thrown with the signal name.

Source

Thrown at packages/cli/src/lib/route-map.ts:122

  child.stdout.on('data', (chunk: string) => {
    stdout += chunk
  })

  child.stderr.on('data', (chunk: string) => {
    stderr += chunk
  })

  let exitResult = await new Promise<{ code: number | null; signal: NodeJS.Signals | null }>(
    (resolve, reject) => {
      child.once('error', reject)
      child.once('close', (code, signal) => {
        resolve({ code, signal })
      })
    },
  )

  if (exitResult.signal != null) {
    throw routeMapLoaderSignal(exitResult.signal)
  }

  if (exitResult.code !== 0) {
    let message = stderr.trim()
    if (message.length === 0) {
      message = 'Route-map loader failed.'
    }

    throw routeMapLoaderFailed(message)
  }

  let parsed: unknown
  try {
    parsed = JSON.parse(stdout)
  } catch {
    throw routeMapLoaderInvalidJson()
  }

View on GitHub (pinned to 9696913134)

Solutions

  1. Re-run the command to rule out a transient kill
  2. Check memory limits (dmesg / CI logs) for OOM kills and raise limits if needed
  3. Disable or raise test/CI timeouts that kill child processes
  4. Ensure no wrapper script is forwarding signals to the CLI's children
Defensive patterns

Strategy: retry

Try / catch

catch (error) {
  if (error instanceof Error && error.code === 'RMX_ROUTE_MAP_LOADER_SIGNAL') {
    // transient (OOM/timeout): retry once with backoff
  }
  throw error
}

Prevention

When it happens

Trigger: The route-map loader subprocess being killed by a signal: OOM killer (SIGKILL), user Ctrl-C propagation, test-runner timeouts killing children, or process-tree cleanup in CI.

Common situations: Memory-constrained CI containers where the loader is OOM-killed; tooling that sends SIGTERM to the whole process tree on timeout.

Related errors


AI-assisted analysis of remix-run/remix@9696913134 (2026-08-27). Data as JSON: /api/errors/c1f74599980299f5. Report an issue: GitHub.