{"action":"created","issue":{"url":"https://api.github.com/repos/mapillary/mapillary_issues/issues/897","labels_url":"https://api.github.com/repos/mapillary/mapillary_issues/issues/897/labels{/name}","comments_url":"https://api.github.com/repos/mapillary/mapillary_issues/issues/897/comments","events_url":"https://api.github.com/repos/mapillary/mapillary_issues/issues/897/events","html_url":"https://github.com/mapillary/mapillary_issues/issues/897","id":66330819,"number":897,"title":"Android needs robustness against Error 400 in upload","user":{"login":"polarbearing","id":8266355,"avatar_url":"https://avatars.githubusercontent.com/u/8266355?v=3","gravatar_id":"","url":"https://api.github.com/users/polarbearing","html_url":"https://github.com/polarbearing","followers_url":"https://api.github.com/users/polarbearing/followers","following_url":"https://api.github.com/users/polarbearing/following{/other_user}","gists_url":"https://api.github.com/users/polarbearing/gists{/gist_id}","starred_url":"https://api.github.com/users/polarbearing/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/polarbearing/subscriptions","organizations_url":"https://api.github.com/users/polarbearing/orgs","repos_url":"https://api.github.com/users/polarbearing/repos","events_url":"https://api.github.com/users/polarbearing/events{/privacy}","received_events_url":"https://api.github.com/users/polarbearing/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mapillary/mapillary_issues/labels/bug","name":"bug","color":"fc2929"}],"state":"closed","locked":false,"assignee":{"login":"peterneubauer","id":11977,"avatar_url":"https://avatars.githubusercontent.com/u/11977?v=3","gravatar_id":"","url":"https://api.github.com/users/peterneubauer","html_url":"https://github.com/peterneubauer","followers_url":"https://api.github.com/users/peterneubauer/followers","following_url":"https://api.github.com/users/peterneubauer/following{/other_user}","gists_url":"https://api.github.com/users/peterneubauer/gists{/gist_id}","starred_url":"https://api.github.com/users/peterneubauer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterneubauer/subscriptions","organizations_url":"https://api.github.com/users/peterneubauer/orgs","repos_url":"https://api.github.com/users/peterneubauer/repos","events_url":"https://api.github.com/users/peterneubauer/events{/privacy}","received_events_url":"https://api.github.com/users/peterneubauer/received_events","type":"User","site_admin":false},"milestone":null,"comments":6,"created_at":"2015-04-04T15:24:51Z","updated_at":"2015-08-08T08:24:32Z","closed_at":"2015-08-05T12:59:22Z","body":"In #752 I believe the fix was stabilising the upload server. \r\n\r\nHowever I had this error again in a 111 pic upload, and in a new attempt the file uploaded without problems. In the log I do not see any attempt by the app to upload the picture again. I would recommend to try at least 3 times to upload such  file in the app, to work around transient server hickups. \r\n```\r\nSat Apr 04 16:15:13 CEST 2015 : app.mapillary.android.sync.UploadService$SendFileTask[1]  - Uploading photo /storage/sdcard0/mapillary/#obfuscated#/2015_03_30_12_22_58_900.jpg to http://mapillary.uploads.images.s3.amazonaws.com/\r\nSat Apr 04 16:15:13 CEST 2015 : app.mapillary.android.sync.UploadService  - sleeping.0/103 of 111\r\n[...]\r\nSat Apr 04 16:16:17 CEST 2015 : app.mapillary.android.sync.UploadService$SendFileTask[1]  - upload status: 400\r\n[all 4 threads continue with remaining files]\r\nSat Apr 04 16:16:57 CEST 2015 : app.mapillary.android.sync.UploadService  - Done, errors Upload failure (400)\r\n```\r\nPicture 2015_03_30_12_22_58_900.jpg was only tried once in the log. Later, starting again:\r\n```\r\nSat Apr 04 17:07:33 CEST 2015 : app.mapillary.android.activity.MainActivity  - Mapillary versionName: 1.21\r\nSat Apr 04 17:07:33 CEST 2015 : app.mapillary.android.activity.MainActivity  - Mapillary versionCode: 121\r\nSat Apr 04 17:07:45 CEST 2015 : app.mapillary.android.sync.UploadService$SendFileTask[0]  - Uploading photo /storage/sdcard0/mapillary/#obfuscated#/2015_03_30_12_22_58_900.jpg to http://mapillary.uploads.images.s3.amazonaws.com/\r\nSat Apr 04 17:08:05 CEST 2015 : app.mapillary.android.sync.UploadService$SendFileTask[0]  - upload status: 204\r\nSat Apr 04 17:08:05 CEST 2015 : app.mapillary.android.sync.UploadService  - Upload done, success.\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/mapillary/mapillary_issues/issues/comments/128931250","html_url":"https://github.com/mapillary/mapillary_issues/issues/897#issuecomment-128931250","issue_url":"https://api.github.com/repos/mapillary/mapillary_issues/issues/897","id":128931250,"user":{"login":"polarbearing","id":8266355,"avatar_url":"https://avatars.githubusercontent.com/u/8266355?v=3","gravatar_id":"","url":"https://api.github.com/users/polarbearing","html_url":"https://github.com/polarbearing","followers_url":"https://api.github.com/users/polarbearing/followers","following_url":"https://api.github.com/users/polarbearing/following{/other_user}","gists_url":"https://api.github.com/users/polarbearing/gists{/gist_id}","starred_url":"https://api.github.com/users/polarbearing/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/polarbearing/subscriptions","organizations_url":"https://api.github.com/users/polarbearing/orgs","repos_url":"https://api.github.com/users/polarbearing/repos","events_url":"https://api.github.com/users/polarbearing/events{/privacy}","received_events_url":"https://api.github.com/users/polarbearing/received_events","type":"User","site_admin":false},"created_at":"2015-08-08T08:24:32Z","updated_at":"2015-08-08T08:24:32Z","body":"Uploading 770 pic with v.135 went smoothly. No error 400 in the log, all upload status: 204."}}