wailsapp/wails · warning

error fixing handler for signal %d, please report this issue

Error message

error fixing handler for signal %d, please report this issue to https://github.com/wailsapp/wails: %s\n

What it means

This is a C-level stderr message from Wails v2's Linux frontend (linux_shared.c-style code embedded in frontend.go): fix_signal() re-installs each inherited signal handler with SA_ONSTACK so the crash handler (SIGSEGV etc.) runs on an alternate stack. The message prints when sigaction() itself fails while reading or modifying a handler, including errno text; it is diagnostic output, not a crash.

Source

Thrown at v2/internal/frontend/desktop/linux/frontend.go:33

#include <errno.h>
#include <signal.h>
#include <stdio.h>
#include <string.h>

static void fix_signal(int signum)
{
    struct sigaction st;

    if (sigaction(signum, NULL, &st) < 0) {
        goto fix_signal_error;
    }
    st.sa_flags |= SA_ONSTACK;
    if (sigaction(signum, &st,  NULL) < 0) {
        goto fix_signal_error;
    }
    return;
fix_signal_error:
        fprintf(stderr, "error fixing handler for signal %d, please "
                "report this issue to "
                "https://github.com/wailsapp/wails: %s\n",
                signum, strerror(errno));
}

static void install_signal_handlers()
{
#if defined(SIGCHLD)
    fix_signal(SIGCHLD);
#endif
#if defined(SIGHUP)
    fix_signal(SIGHUP);
#endif
#if defined(SIGINT)
    fix_signal(SIGINT);
#endif
#if defined(SIGQUIT)
    fix_signal(SIGQUIT);

View on GitHub (pinned to 0e754b1b40)

Solutions

  1. Treat as a warning first: check whether crash reporting (stack traces on SIGSEGV) still works; if yes, ignore
  2. In containers, relax the seccomp profile to allow sigaction, or run with --security-opt seccomp=unconfined to verify it is the cause
  3. Update Wails — newer versions scope the fix to specific signals and tolerate failure more gracefully
  4. If the environment truly forbids sigaction, accept degraded crash-handler behavior; the app itself keeps running
Defensive patterns

Strategy: fallback

Prevention

When it happens

Trigger: Running the binary in environments that block sigaction (some seccomp/container sandboxes return EPERM); a signal number not valid on the kernel in use (EINVAL); running under a supervisor (e.g. certain init systems, gdb, wine) that installed handlers incompatible with modification.

Common situations: Docker/gVisor/sandboxes with restricted seccomp profiles; cross-building or running under qemu-user where some signals are absent; the message appears once per signal at startup and the app otherwise works.

Related errors


AI-assisted analysis of wailsapp/wails@0e754b1b40 (2026-08-15). Data as JSON: /api/errors/2688db9f29929ded. Report an issue: GitHub.