You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Scripts: upper-case extensions (e.g. .PY) are accepted, but batch runs mark every host incompatible #58774
Web browser and operating system: Chromium running on macOS, and the API
💥 Actual behavior
Add script accepts a script with an upper-case extension, like HELLO.PY, as a Python script, and running it on a single macOS host works. But the batch run marks every macOS host as incompatible, and Controls › Scripts shows it with a generic icon and no platform.
🛠️ Expected behavior
An upper-case extension is handled the same as a lower-case one everywhere, as Add script and single-host runs already do.
🧑💻 Steps to reproduce
These steps:
Have been confirmed to consistently lead to reproduction in multiple Fleet instances.
Describe the workflow that led to the error, but have not yet been reproduced in multiple Fleet instances.
Controls › Scripts › Add script: upload HELLO.PY containing #!/usr/bin/env python3 and print("hi"). It's saved, but the list shows no icon or "macOS & Linux".
Run it on a macOS host in a batch (POST /api/latest/fleet/scripts/run/batch with script_id and host_ids). The batch reports the host as incompatible.
Do the same with a hello.py copy. That host is pending, and running HELLO.PY on that host alone is queued.
🕯️ More info (optional)
Saving a script lower-cases the extension (server/fleet/scripts.go:45, ValidateNewScript), but ValidateScriptPlatform (server/fleet/scripts.go:985, used by batch runs) and ScriptListItem.tsx:31 compare it case-sensitively.
Activity