Custom Probe spawn EPERM error #454

Open
opened 2026-04-05 16:19:51 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @firedaemon-cto on 6/4/2025

Describe the bug
If you deploy a custom probe with Docker, the probe connects but cannot execute any Monitors.

To Reproduce
Steps to reproduce the behaviour:

  1. Deploy a custom probe with Docker per documentation on Linux per:

docker run --name oneuptime-probe --network host -e PROBE_KEY= -e PROBE_ID= -e ONEUPTIME_URL=https://oneuptime.com -d oneuptime/probe:release

The container starts and connects to OneUptime.

  1. Create a Monitor in the OneUptime Cloud Portal of Type Ping
  2. Attempt to Ping a host by name or IP on the private network
  3. Ping (and for that matter any Monitor Type) always fails
  4. Debugging the container yields the following error. I've verified that the container itself can reach hosts by name or IP on the internal network (e.g. via exec ping)

Pinging host: d777bc0a-74ec-4109-8a23-a5d476e37001 fs01 - Retry: 1
Pinging host d777bc0a-74ec-4109-8a23-a5d476e37001 fs01 error:
Error: spawn EPERM
at ChildProcess.spawn (node:internal/child_process:421:11)
at Object.spawn (node:child_process:753:9)
at /usr/src/app/node_modules/ping/lib/ping-promise.js:43:23
at new Promise ()
at _probe (/usr/src/app/node_modules/ping/lib/ping-promise.js:34:12)
at Object.probe (/usr/src/app/node_modules/ping/lib/ping-promise.js:97:28)
at Function.ping (/usr/src/app/Utils/Monitors/MonitorTypes/PingMonitor.ts:63:57)
at Function.probeMonitorStep (/usr/src/app/Utils/Monitors/Monitor.ts:225:65)
at Function.probeMonitorTest (/usr/src/app/Utils/Monitors/Monitor.ts:56:62)
at Function.fetchListAndProbe (/usr/src/app/Jobs/Monitor/FetchMonitorTest.ts:83:47)
at processTicksAndRejections (node:internal/process/task_queues:105:5)
at async Function.run (/usr/src/app/Jobs/Monitor/FetchMonitorTest.ts:41:7)
at async runFunction (/usr/src/app/Jobs/Monitor/FetchMonitorTest.ts:27:9)
at async Task._execution (/usr/src/Common/Server/Utils/BasicCron.ts:24:7) {
errno: -1,
code: 'EPERM',
syscall: 'spawn'
}

Expected behaviour
The Probe should be able to ping hosts.

Screenshots
No screenshots

Desktop (please complete the following information):

  • OS: Windows 11 22H2
  • Browser: Firefox
  • Version: 139.0.1

Smartphone (please complete the following information):
Not applicable

Deployment Type
SaaS + on-premises probe running on Rocky Linux 9.6 VM.

Additional context
None

*Originally created by @firedaemon-cto on 6/4/2025* **Describe the bug** If you deploy a custom probe with Docker, the probe connects but cannot execute any Monitors. **To Reproduce** Steps to reproduce the behaviour: 1. Deploy a custom probe with Docker per documentation on Linux per: docker run --name oneuptime-probe --network host -e PROBE_KEY=<key> -e PROBE_ID=<id> -e ONEUPTIME_URL=https://oneuptime.com -d oneuptime/probe:release The container starts and connects to OneUptime. 2. Create a Monitor in the OneUptime Cloud Portal of Type Ping 3. Attempt to Ping a host by name or IP on the private network 4. Ping (and for that matter any Monitor Type) always fails 5. Debugging the container yields the following error. I've verified that the container itself can reach hosts by name or IP on the internal network (e.g. via exec ping) Pinging host: d777bc0a-74ec-4109-8a23-a5d476e37001 fs01 - Retry: 1 Pinging host d777bc0a-74ec-4109-8a23-a5d476e37001 fs01 error: Error: spawn EPERM at ChildProcess.spawn (node:internal/child_process:421:11) at Object.spawn (node:child_process:753:9) at /usr/src/app/node_modules/ping/lib/ping-promise.js:43:23 at new Promise (<anonymous>) at _probe (/usr/src/app/node_modules/ping/lib/ping-promise.js:34:12) at Object.probe (/usr/src/app/node_modules/ping/lib/ping-promise.js:97:28) at Function.ping (/usr/src/app/Utils/Monitors/MonitorTypes/PingMonitor.ts:63:57) at Function.probeMonitorStep (/usr/src/app/Utils/Monitors/Monitor.ts:225:65) at Function.probeMonitorTest (/usr/src/app/Utils/Monitors/Monitor.ts:56:62) at Function.fetchListAndProbe (/usr/src/app/Jobs/Monitor/FetchMonitorTest.ts:83:47) at processTicksAndRejections (node:internal/process/task_queues:105:5) at async Function.run (/usr/src/app/Jobs/Monitor/FetchMonitorTest.ts:41:7) at async runFunction (/usr/src/app/Jobs/Monitor/FetchMonitorTest.ts:27:9) at async Task._execution (/usr/src/Common/Server/Utils/BasicCron.ts:24:7) { errno: -1, code: 'EPERM', syscall: 'spawn' } **Expected behaviour** The Probe should be able to ping hosts. **Screenshots** No screenshots **Desktop (please complete the following information):** - OS: Windows 11 22H2 - Browser: Firefox - Version: 139.0.1 **Smartphone (please complete the following information):** Not applicable **Deployment Type** SaaS + on-premises probe running on Rocky Linux 9.6 VM. **Additional context** None
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/oneuptime#454