ok. so i’m thinking your issue is probably different from the issue described in the original post, which i’m guessing is related specifically to iOS somehow.
in your case, you note that the issue happens after you restart the machine, but i wonder if the issue actually happens when you restart your browser? if so, you might have a setting in your browser set to delete cookies upon shutting down the browser. (if so, just disable that setting.) or it’s possible you might have some extension (such as an adblocker) that is causing issues, as seems to have been the case with crosslament (above). (try disabling the extensions and/or use a different browser without those extensions.)
…
for the iOS stuff, i was thinking maybe the issue had something to do with Apple’s aggressive cookie handling (ITP), but then it should affect Safari on MacOS, too, and i think the fastest cookies should be eliminated should be 24 hours in special cases (and edropkin is saying that the problem may arise faster than that).
so then i was looking around, and it looks like IOS specifically might not like cases where the cookie contents include non-ASCII characters. i’m not sure about whether that means the base64 encoded value or the base64 decoded value, but if i’m looking at things correctly, i think that the decoded value in the refresh token would look something like this: {"_rails":{"message":"key","exp":"expiration date","pur":null}}junk?
. it looks like the junk(?) at the end may contain non-ASCII characters. i’m not sure what that junk(?) at the end is supposed to be though. i wonder if it could be eliminated, and maybe that could fix the problem?
(i sort of doubt that iNat would have done anything to change this kind of thing though. so i’m not sure why the problem would have magically resolved itself for several months, only to reappear. maybe the problem is actually appearing or disappearing as iOS is updated and handling things slightly differently between different versions?)