I'm using BTRFS on my SSD and while it has some neat features the need to rebalance periodically or you can "run out of space" while using less than half the SSD drives me crazy.
Kernel 4.8 and newer have a new ticketed enospc infrastructure that should avoid this, there's also earlier changes where empty block groups are deallocated automatically. If you're already using 4.8+ then try 4.12.6 or newer, which includes commit 4a309747.
Due to past long standing enospc challenges, more experienced users are in the (bad) habit of micro-managing Btrfs manually with filtered balance, e.g. -dusage=15 -musage=15. Really we kinda need to stop doing that to find and fix the remaining edge cases; or worst case upstream should deploy a systemd timer / cron job to do these partial balances maybe once a week.
Anyway I don't balance at all on my drives and haven't run into enospc in quite a while. So chances are you're hitting an edge case, and there's a bug that needs to be tracked down if you're already using 4.12.6+.
When I get home I'll have to check. I'm using it via UnRAID so I don't have as much control over the version I run but they are pretty good about releasing updates, I'm just bad about applying them and restarting because taking down Plex is a sin punishable by death lol