Common SQL Errors

MySQL Error 39: EE_FAILED_TO_START_TIMER_NOTIFY_THREAD - How to Diagnose, Fix, and Prevent

Galaxy Team
August 5, 2025

MySQL fails to create the internal timer-notification thread, preventing background tasks from running and aborting the requested operation.

Sign up for the latest in common SQL errors from the Galaxy Team!
Welcome to the Galaxy, Guardian!
You'll be receiving a confirmation email

Follow us on twitter :)
Oops! Something went wrong while submitting the form.

What is MySQL error code 39 EE_FAILED_TO_START_TIMER_NOTIFY_THREAD?

MySQL Error 39: EE_FAILED_TO_START_TIMER_NOTIFY_THREAD appears when the server cannot spawn its timer-notification thread, usually because the operating system blocks new threads or MySQL’s thread settings are too low. Free OS resources, raise thread limits, and restart MySQL to resolve the issue.

Error Highlights

Typical Error Message

Failed to start timer notify thread. EE_FAILED_TO_START_TIMER_NOTIFY_THREAD was added in 8.0.13.

Error Type

Runtime Error

Language

MySQL

Symbol

EE_FAILED_TO_START_TIMER_NOTIFY_THREAD

Error Code

39

SQL State

Explanation

Table of Contents

What is MySQL error 39 EE_FAILED_TO_START_TIMER_NOTIFY_THREAD?

Error 39 signals that MySQL could not launch its timer-notification thread, a low-level background worker used by internal subsystems such as the Performance Schema and replication timers.

When the server cannot create this thread, the related feature aborts, and the server may refuse to start or log warnings until the condition is fixed.

When does this error occur?

The error usually surfaces at server startup, while enabling the Event Scheduler, or when plugins that rely on timers initialize.

It was first introduced in MySQL 8.0.13.

Heavy load, exhausted OS thread quotas, or misconfigured thread_stack values often trigger the failure.

Why is rapid remediation important?

If the timer thread is missing, scheduled events, timeouts, and cleanup tasks stall. Over time this can cause replication lag, stale metadata, or even a full server crash, so immediate action is vital.

What Causes This Error?

The root cause is the operating system denying a pthread-create call made by MySQL.

Lack of RAM, low per-user thread limits, SELinux restrictions, or antivirus hooks on Windows can all block thread creation.

How to Fix MySQL Error 39 EE_FAILED_TO_START_TIMER_NOTIFY_THREAD

First, verify OS limits with ulimit -a or Windows Resource Monitor. Raise the max user processes and max threads settings if they are near exhaustion.

Next, adjust MySQL parameters such as thread_stack and innodb_thread_concurrency in my.cnf to conserve thread usage.

Restart MySQL to apply changes.

Common Scenarios and Solutions

On Linux, busy servers with hundreds of connections may hit the ulimit -u cap. Increasing it and restarting usually clears the error.

On Windows, third-party antivirus software can block thread creation. Temporarily disabling the software or adding MySQL to the allowlist fixes the issue.

Best Practices to Avoid This Error

Monitor thread and memory usage with performance_schema.threads and OS tools.

Keep enough headroom between MySQL threads_created and the OS limit.

Define sane defaults in configuration management, automate limits with systemd unit files, and test upgrades in staging environments.

Related Errors and Solutions

MySQL Error 35 (EE_CANT_CREATE_THREAD) signals a generic thread-creation failure, while Error 46 (EE_OUT_OF_RESOURCES) indicates broader resource exhaustion. They share similar fixes: boost OS limits and free memory.

.

Common Causes

Related Errors

FAQs

Does this error always stop the MySQL server?

No. Sometimes only the feature needing the timer thread fails, but the server keeps running with degraded functionality.

Can I fix the error without restarting MySQL?

If the failure happened at startup, a restart is required. If it occurred later, freeing OS threads may allow MySQL to create the thread on-the-fly.

Is thread_stack dynamic?

No. You must set it in my.cnf and restart MySQL for the new value to take effect.

How does Galaxy help with this error?

Galaxy’s query editor highlights server warnings in real time and logs them centrally, making it easier to spot thread-creation issues early and share fixes with teammates.

Start Querying with the Modern SQL Editor Today!
Welcome to the Galaxy, Guardian!
You'll be receiving a confirmation email

Follow us on twitter :)
Oops! Something went wrong while submitting the form.

Check out some other errors

Trusted by top engineers on high-velocity teams
Aryeo Logo
Assort Health
Curri
Rubie Logo
Bauhealth Logo
Truvideo Logo