Diagnosing and managing the dropouts issue in Apple’s CoreAudio (HALS_OverloadMessage)
This article contains troubleshooting information
HALS_OverloadMessage.cpp
HALS_OverloadMessage: Overload possibly due to HAL client proc exceeding io cycle budget
Since the release of Apple’s Monterey OS, they have had issues with their CoreAudio process, when the system is under moderately high memory (RAM) usage. From numerous reports and our own testing, it seems this issue is especially apparent on the M-series Apple Silicon chips (M1, M2, M3).
On some systems, the issue can present itself when using the Source-Nexus Gateway, or any other audio software.
Apple is currently working on the issue, but at the moment of writing there is no fix implemented in the current version (Sonoma 14.3).
How does the issue present itself?
The CoreAudio process manages the handover of audio between applications in the OS and your audio devices. When the RAM usage on the Mac is high, the CoreAudio process does not meet its deadlines, and drops out audio. This can present itself as dropouts, crackles, or unwanted glitches and impulses.
How can I diagnose the issue?
A quick way to diagnose the issue is by seeing if the dropouts happen across multiple applications or audio devices.
For example, if you’re experiencing dropouts with Source-Nexus Gateway that cannot be explained by a bad connection, a buffer size that is too low, or a bitrate that is too high, you can play audio through another application (e.g. Youtube, Spotify) and then loading the Source-Nexus Gateway and following the steps that led to dropouts before. If the audio in the other applications also drops out, you can be quite certain the issue is with CoreAudio.
If you want an advanced - but more certain - way to diagnose the issues, you can follow these steps:
- Open the Console.app application.
- Click ‘Start streaming’.
- Click the ‘Errors & Warnings’ tab (you will see a lot of warnings, this is normal).
- Click the search bar, and clear all the entered filters.
- Search for “hals”.
- Trigger the behaviour a few times. You should see error messages called ‘HALS_OverloadMessage’ come up in the log when the dropouts occur (sometimes it can take a minute before they show up, the timestamp before the error will show the actual time it happened).
What can I do to solve this?
Currently, Apple does not know of a way to fully solve the problem, but you can try the following:
- See if you can reduce the memory usage of your computer. For example, if there are a lot of browser tabs open, or idle software you don’t need during your session, close those.
- If your DAW is already consuming too much memory, see if you can run the session with a stripped down version of the project - no heavy plug-ins active, only recording over a bounced export of your project - to reduce memory usage.