I have been a long time Forest user (August of 2017), and just started using hearing aids (Bluetooth LE) that are connected to my iPhone. The hearing aids are great, but I ran into an annoying issue where the sound would change on a regular interval. After a bit of poking around I concluded that it was because the hearing aids were switching between one of the hearing aid profiles and "streaming audio" profile, which is supposed to happen when you're playing music, watching videos, etc. But I wasn't playing anything and it was happening on a regular interval (around every 20 seconds).
I eventually swiped up on all my apps, killing them, which made the problem go away. Some further testing narrowed it down to Forest being the problem. I used Claude to help me do some more troubleshooting to confirm it and then draft a bug report for me, which I've sent off to the Forest team (text is below).
I'm mostly just including this here so that if anyone else experiences this it will help them diagnose the problem. Hopefully the Forest developers will fix this.
---
Subject: Bug: Forest plays silent background audio every 20 seconds, disrupting Bluetooth hearing aids
Hi Forest team,
I'd like to report a bug that makes Forest hard to use with Bluetooth hearing aids. While Forest is running in the background, it starts a silent audio session about every 20 seconds. The audio is at zero volume, but iOS still routes it to my hearing aids, which makes them switch from my normal listening program to their "Streaming" program and back each time. I can hear the change, and it happens around the clock whenever Forest is running.
I confirmed Forest is the cause using the iPhone's system log (captured with Console.app on a Mac). The problem stops completely when Forest is closed.
ENVIRONMENT
- iPhone: iPhone 16 Pro Max
- iOS: 27.2
- Forest: 5.32.0
- Hearing aids: ReSound Sensia 5, connected over Bluetooth LE Audio
- Silent mode on
- Focus session active at the time: this seems to happen regardless of whether a focus session is active.
STEPS TO REPRODUCE
Pair LE Audio hearing aids (or any Bluetooth LE Audio output) with the iPhone.
Open Forest, then send it to the background.
Watch the hearing aid's active program (e.g., in the manufacturer's app), or stream the iPhone log in Console.app.
EXPECTED
Forest doesn't start an audio session in the background unless it is actually playing sound the user asked for, such as ambient sounds during a session.
ACTUAL
About every 20 seconds, Forest starts a mixable MediaPlayback session and plays an AudioQueue at volume 0 for roughly 0.8 seconds. It gets routed to the Bluetooth LE output, and the hearing aids switch programs each time.
LOG EVIDENCE (excerpts, Oct 26 2026)
Periodic audio activation (every ~20 s):
18:00:02.228 heard AudioRoutesManager: Handle audio sessions change, Audio is playing: 1
18:00:02.978 heard AudioRoutesManager: Handle audio sessions change, Audio is playing: 0
18:00:22.254 heard AudioRoutesManager: Handle audio sessions change, Audio is playing: 1
18:00:42.221 heard AudioRoutesManager: Handle audio sessions change, Audio is playing: 1
18:01:02.227 heard AudioRoutesManager: Handle audio sessions change, Audio is playing: 1
Forest is the session owner and is in the background:
18:00:02.200562 audiomxd -CMSessionMgr- cmsSetIsPlaying:6588 'sid:0x7e054, Forest(1565), 'prim'' with [MediaPlayback/Default] [Mixable] [System Audio] starting playing to output VAD: VirtualAudioDevice_Default. Ringer switch state: Device is silenced, Session is unmuted. ... NowPlayingApp:NO IsPlayingOutput:YES
18:00:02.232731 audiomxd Received state update for 1565 (app<com.forestapp.Forest(...)>, running-active-NotVisible
Audio is silent and not Now Playing eligible:
18:00:02.231055 audiomxd AQIONode.cpp:768 client <AudioQueueObject@0x78ad765800; ; sid:0x7e054, Forest(1565), 'prim'; play> is NOT Now Playing eligible
18:00:02.231844 audiomxd AudioQueueObject.cpp:6019 AudioQueueObject@0x78ad765800 ApplyParameters: volume 0.000 1.000 1.000 1.000 1.000 1.000, 1.000
Routed to the hearing aids (Bluetooth LE output):
18:00:02.207267 audiomxd -CMVAEndptMgr- vaemConfigurePVMSettings: PVMSetCurrentState [MediaPlayback, Default, BluetoothLEOutput, ...-tlea, (null), NO]
Keeps the app alive via a media playback assertion:
18:00:02.227128 runningboardd Acquiring assertion targeting [app<com.forestapp.Forest(...)>:1565] from originator [osservice<com.apple.audiomxd>:126] ... "MediaPlayback".isPlayingProcessAssertion
IMPACT
For hearing aid users, each activation switches the hearing aids into their streaming program, which changes how everything around them sounds, every 20 seconds. AirPods users probably wouldn't notice, but with hearing aids it makes Forest unusable unless I force-quit it.
SUGGESTIONS
- Only activate the audio session while it's actually needed (e.g., during a session with ambient sound turned on), and deactivate it afterward with notifyOthersOnDeactivation.
- Avoid periodic silent playback as a keep-alive. A Live Activity or local notifications may cover the timer use case.
- If background audio is needed for a feature, consider letting users turn it off.
I'm happy to collect more logs or test a build.