Skip to content

nomad alloc signal gets a 500 response when alloc has non-sidecar tasks #28105

Description

@dani

Nomad version

Nomad v2.0.2
BuildDate 2026-05-22T12:46:01Z
Revision 26ed559e8bc8c1776fab706c17bd6ba259f87ae8

Operating system and Environment details

AlmaLinux 9.8, Nomad running using the pre-built binary

Issue

When trying to send a signal to an alloc (without specifying a task), we get a 500 error response if the alloc has non running tasks. For example, if the alloc has a prestart task set with sidecar = false

When trying to signal such an alloc with eg

nomad alloc signal -s SIGKILL 29d2a9c0-a868-fa53-ee36-141821e0d6e9

We get

Error signalling allocation: Unexpected response code: 500 (rpc error: 1 error occurred:
	* Failed to signal task: wait-for, err: Task not running)

Reproduction steps

Run the provided job file.

Once the job is running, try to SIGKILL (or any other sig) the alloc with

nomad alloc signal -s SIGKILL 29d2a9c0-a868-fa53-ee36-141821e0d6e9

Expected Result

Nomad should ignore non running tasks and not reply to the API call as a 500 error

Actual Result

Nomad tries to send the signal to non running tasks, and reply with a 500 error as the task is not running

Job file (if appropriate)

job "test" {
  datacenters = ["dc1"]

  group "test" {
    task "prestart" {
      driver = "docker"
      lifecycle {
        hook = "prestart"
        sidecar = false
      }
      config {
        image = "alpine:latest"
        command = "ls"
      }
      resources {
        cpu = 10
        memory = 10
      }
    }
    task "main" {
      driver = "docker"
      config {
        image = "alpine:latest"
        command = "sleep"
        args    = ["infinity"]
      }
      resources {
        cpu = 10
        memory = 10
      }
    }
  }
}

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

Status
In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions