hashicorp/nomad · info

unsupported

Error message

unsupported

What it means

The Windows build of the executor's PTY helpers does not implement terminal resizing; setTTYSize is a stub that always returns "unsupported". Any attempt to resize a terminal session on Windows produces this error.

Source

Thrown at drivers/shared/executor/pty_windows.go:21

//go:build windows
// +build windows

package executor

import (
	"fmt"
	"io"
	"os"
	"syscall"
)

func sessionCmdAttr(tty *os.File) *syscall.SysProcAttr {
	return &syscall.SysProcAttr{}
}

func setTTYSize(w io.Writer, height, width int32) error {
	return fmt.Errorf("unsupported")

}

func isUnixEIOErr(err error) bool {
	return false
}

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Gate resize calls on runtime.GOOS != "windows" or a capability flag from the driver
  2. Ignore this specific error on Windows (treat resize as best-effort)
  3. Upgrade Nomad — check release notes for Windows PTY/resize support in newer versions
  4. Use non-TTY exec on Windows if interactive resizing is not essential

Example fix

// before
err := setTTYSize(w, h, width)
// after
if runtime.GOOS != "windows" {
    err := setTTYSize(w, h, width)
    _ = err // handle on unix
}
Defensive patterns

Strategy: fallback

Validate before calling

if runtime.GOOS == "windows" { skip resize }

Try / catch

if err := session.Resize(h, w); err != nil && err.Error() == "unsupported" {
    // best-effort: ignore on windows
}

Prevention

When it happens

Trigger: Calling TerminalResize (or setTTYSize) on Windows regardless of session type — the function is intentionally unimplemented on windows/amd64 builds.

Common situations: Cross-platform tooling that unconditionally sends resize events (SIGWINCH handlers) running against a Windows Nomad client; Windows alloc exec sessions with tty=true where the UI sends size updates.

Related errors


AI-assisted analysis of hashicorp/nomad@482b49bf1a (2026-09-04). Data as JSON: /api/errors/2f99b343dec7d2d9. Report an issue: GitHub.