Update
TL;DR - Unexpected log-outs when making posts/PMs should not happen anymore. No one should suffer losing minutes or hours of work anymore.
I've fixed an issue we've had for a long time now. If a user logs in and does not choose "remember me" then they should be logged in for as long as their browser is open. If you do choose to "remember me" then you should remain logged in for 90 days (no matter how many times you close your browser) or until you manually log out. In either of these situations, users were encountering situations way too often where they would type out a post or PM (possibly taking a bit of time before starting the post and finishing the post) and then when they submit the post, they are logged out instead. The post they'd typed never got submitted, and it was lost forever. This can be annoying for short posts, and absolutely infuriating for longer posts. This is 2019, and stuff like this should not happen. This is 1990's era bullshit. This is obviously unacceptable.
I know this situation turned Jay off a while back, and I've personally run into it so many times I almost always instinctively copy my posts before submitting now. The SR2019 National Convention happened recently, and more users are complaining about this problem (Kyle particularly) as they post about the event. I don't want another day to go by where another user loses another post.
The first idea for a fix was to present to the user the content of their post/PM after being logged out so they could copy the content, log back in, navigate to where they wanted to be, paste the content back, and continue on their way. This was not a great solution, but I figured it would mostly alleviate the problem. I started looking into this solution, and found two things. 1) The proposed solution is WAY harder to implement than expected, and something else might need to be done instead. 2) The reason people are being logged out when trying to make posts is because I'd forgotten about a well-meaning (but ultimately disastrous) time limit I'd placed on input forms.
So, since I'd found out about the 1-hour time limit I'd placed on forms, I was able to increase that to 72 hours (3 days). If you begin a post/PM and finish it within 3 days of starting it, you should be fine now. Whereas in the past, if you started a post/PM and didn't complete it within the hour, you were screwed.
This 1-hour limit was actually way easier to trigger than you'd expect. The "Quick Reply" text box at the end of every thread also has this limit, so you could view a thread, and while you're reading the thread the timer is counting down. Maybe you leave a thread open overnight, come back in the morning and want to post... That 1-hour timer has LONG gone by... There are lots of unexpected ways to get screwed by this time limit.
So that's it. Problem solved, I hope. No one should suffer this obnoxious problem anymore. If for some reason this does happen to someone in the future, I've changed the error message so that it is obvious that the form expired, and you're instructed to let me know if this happens to you so I can add more layers of fix to this if required.
If you'd like to know what in the world this 1-hour limit was all about, it is part of our cross-site request forgery defense. I make sure form submissions to the site come from a form on the site itself, not some other form someone else created. Part of that forgery protection uses a token, and this token has an expiration time. I've increased the token expiration time from 1 hour to 72 hours. I'm so sorry we've dealt with this for so long.