{"action":"created","issue":{"url":"https://api.github.com/repos/DoSomething/LetsDoThis-iOS/issues/505","labels_url":"https://api.github.com/repos/DoSomething/LetsDoThis-iOS/issues/505/labels{/name}","comments_url":"https://api.github.com/repos/DoSomething/LetsDoThis-iOS/issues/505/comments","events_url":"https://api.github.com/repos/DoSomething/LetsDoThis-iOS/issues/505/events","html_url":"https://github.com/DoSomething/LetsDoThis-iOS/issues/505","id":112496341,"number":505,"title":"Handle invalid API session tokens","user":{"login":"aaronschachter","id":1236811,"avatar_url":"https://avatars.githubusercontent.com/u/1236811?v=3","gravatar_id":"","url":"https://api.github.com/users/aaronschachter","html_url":"https://github.com/aaronschachter","followers_url":"https://api.github.com/users/aaronschachter/followers","following_url":"https://api.github.com/users/aaronschachter/following{/other_user}","gists_url":"https://api.github.com/users/aaronschachter/gists{/gist_id}","starred_url":"https://api.github.com/users/aaronschachter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaronschachter/subscriptions","organizations_url":"https://api.github.com/users/aaronschachter/orgs","repos_url":"https://api.github.com/users/aaronschachter/repos","events_url":"https://api.github.com/users/aaronschachter/events{/privacy}","received_events_url":"https://api.github.com/users/aaronschachter/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/DoSomething/LetsDoThis-iOS/labels/%23networking","name":"#networking","color":"bfdadc"}],"state":"open","locked":false,"assignee":{"login":"tongxiang","id":5678066,"avatar_url":"https://avatars.githubusercontent.com/u/5678066?v=3","gravatar_id":"","url":"https://api.github.com/users/tongxiang","html_url":"https://github.com/tongxiang","followers_url":"https://api.github.com/users/tongxiang/followers","following_url":"https://api.github.com/users/tongxiang/following{/other_user}","gists_url":"https://api.github.com/users/tongxiang/gists{/gist_id}","starred_url":"https://api.github.com/users/tongxiang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tongxiang/subscriptions","organizations_url":"https://api.github.com/users/tongxiang/orgs","repos_url":"https://api.github.com/users/tongxiang/repos","events_url":"https://api.github.com/users/tongxiang/events{/privacy}","received_events_url":"https://api.github.com/users/tongxiang/received_events","type":"User","site_admin":false},"milestone":null,"comments":8,"created_at":"2015-10-21T02:04:43Z","updated_at":"2015-11-19T17:10:31Z","closed_at":null,"body":"If an API key is inactivated, well, the app won't run at all. But, if you're already signed in from a previous session, the app will keep loading on the Main Feed and never push out to the User Connect VC. We should at least push to User Connect VC in this scenario... I think? The API key failing is just one way to test... but if the API goes down, I suppose we don't want to push to User Connect but stay on Epic Fail\r\n\r\nRefs https://github.com/DoSomething/LetsDoThis-iOS/blob/ea012b2721724da729611cd1cc6da3d555e9de5e/Lets%20Do%20This/Controllers/Campaign/LDTCampaignListViewController.m#L108"},"comment":{"url":"https://api.github.com/repos/DoSomething/LetsDoThis-iOS/issues/comments/158122080","html_url":"https://github.com/DoSomething/LetsDoThis-iOS/issues/505#issuecomment-158122080","issue_url":"https://api.github.com/repos/DoSomething/LetsDoThis-iOS/issues/505","id":158122080,"user":{"login":"aaronschachter","id":1236811,"avatar_url":"https://avatars.githubusercontent.com/u/1236811?v=3","gravatar_id":"","url":"https://api.github.com/users/aaronschachter","html_url":"https://github.com/aaronschachter","followers_url":"https://api.github.com/users/aaronschachter/followers","following_url":"https://api.github.com/users/aaronschachter/following{/other_user}","gists_url":"https://api.github.com/users/aaronschachter/gists{/gist_id}","starred_url":"https://api.github.com/users/aaronschachter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaronschachter/subscriptions","organizations_url":"https://api.github.com/users/aaronschachter/orgs","repos_url":"https://api.github.com/users/aaronschachter/repos","events_url":"https://api.github.com/users/aaronschachter/events{/privacy}","received_events_url":"https://api.github.com/users/aaronschachter/received_events","type":"User","site_admin":false},"created_at":"2015-11-19T17:10:31Z","updated_at":"2015-11-19T17:10:31Z","body":"In the scenario described above (https://github.com/DoSomething/LetsDoThis-iOS/issues/505#issuecomment-157772603) -- we save a session ID [per environment](https://github.com/DoSomething/LetsDoThis-iOS/blob/8ecea52de115ee2377e2b5b26c93830c66843f53/Lets%20Do%20This/Networking/DSOUserManager.m#L65). Step 2 would be checking for the session ID from production, not staging. It does sound like that the production session ID expired though."}}