Thanks for reporting this. This is a known intermittent behavior with run_in_background on custom subagents.
The core fix for is_background: true in frontmatter shipped in an earlier release and is included in your version (3.1.10).
A couple of things that may help increase reliability:
Add explicit instructions in your skill’s prompt telling the agent to always run the subagent in the background. Reinforcing the intent in the prompt (not just the frontmatter) gives the model stronger signal.
Keep the is_background: true (or background: true) in your frontmatter as well, since it serves as the default when the model doesn’t specify.
The team is actively working on improving async subagent behavior, so this should get more reliable over time.
Okay, thank you for your reply! I’m not sure if my explanation is correct. My background task always shows as started, as shown in the image above. Sometimes my main window dialog still shows as running (I understand that this might need to be fixed, as the background task’s status affects the main thread’s status), but other times it works, and I can continue the dialog while the background task continues running in the background.