On PC and perhaps platform doesn't matter, but in my games - all 3-4 restarts I have tried thus far, so not just linked to one maybe bad save file - settlement unhappiness always, always, ALWAYS starts to go down solely because of settlers thinking they do not have enough beds.
There can be 15 settlers and 50 beds - does not matter. For some reason, they 'lose' their bed assignment.
So first solution is dull and painstaking, but you can manually go around assigning beds to make sure everyone has a bed - ok good, svcks to have to do that, but I figured it was a one time deal.
But no - when new settlers come in, or one dies and replacement comes in, or just out of random timing, my perfectly working settlement with all manually assigned beds starts to go unhappy again because same issue - suddenly some beds got unassigned or settlers no longer have a bed assignment despite there being tons of extra beds to auto assign to.
So for me - auto bed assignment has never worked , and manual bed assignment only works until population changes or some random over time event happens to throw it off again.
It is a quality of life hell kind of issue. Fixing the problem manually isn't a fix because even the manual fix gets broken eventually. Why the excess food always works but excess beds doesn't is incredibly stupid.
In fact, having extra beds hurts - because when it comes time to assign manually - again - it is hard to tell who has a bed assignment and who doesn't. Only way is to just target random person and go around then looking at beds - if the bed is red tagged then it means no one is sleeping in it - but if you have lots of extra beds - you will of course have beds red tagged for normal reasons - it is extra.
So another juggle is to just always have exact number of beds - this way when you run around in build mode and scan over each bed, anyone that lights up red means a sleeping assignment got broken. You won't know who to assign there per se, but you can assign people to red beds until there are none left tagged as red. You end up assigning someone who had a bed to that red bed, which then makes that person's original bed as red tagged as well. Do you see how lame this issue is? It's the blind leading the blind in a game of musical chairs with the music on mute.
The first must have mod for me would be whenever and however this bed assignment issue can be done automatically, as the vanilla game tries but fails so hard at.