Ошибки Heroku Django Gunicorn Ошибка H18 (Запрос прерван)
Я использую Django с Gunicorn на heroku. И я делаю https запросы через post к моему бэкенду, отправляя некоторые файлы (которые не нужно хранить), локально все работает нормально. Но на heroku, когда я отправляю маленькие файлы (<13kbytes), все работает, но для больших файлов я получаю Error H18 (Request Interrupted).
Я не смог понять причину ошибки, если она от самого heroku, если она от тела запроса, чтобы быть большим или от gunicorn.
Что было бы лучшим способом выяснить возможную причину этого, есть идеи?
Вот разгадка:
H18 означает, что сокет подключился, некоторые данные были отправлены как часть ответа приложения, но затем сокет был уничтожен без завершения ответа
Возможно, вы столкнулись с одним из ограничений на heroku, если вы являетесь бесплатным пользователем. Однако лучше точно определить проблему, а не строить догадки. Что вы можете сделать, так это установить Heroku CLI. Затем, после настройки аккаунта, отправьте еще один большой файл на бэкенд. Это снова приведет к ошибке H18. Затем вы можете отследить проблему в терминале следующим образом:
$ heroku login
$ heroku logs --tail --app <your-heroku-app-name>
Для людей в будущем с такой же проблемой, моя проблема возникла из-за того, что я не дождался загрузки всех файлов, локально работает, потому что файлы загружаются мгновенно, но на сервере не мгновенно. Поэтому для решения проблемы мне нужно было использовать await и promisses для ожидания файлов и после этого вызвать backend.