Heroku: H18 прямо перед тем, как мое приложение должно загрузить .mp4

У меня проблемы с моим приложением, которое генерирует 5-8-секундные видеоролики.

Весь запрос занимает около 15 секунд, приложение выполняет все необходимые действия, но когда приходит время загрузить видеофайл, оно терпит неудачу. Я устанавливаю ту же версию python, что и локально python-3.11.5. Я запускаю приложение прямо сейчас, пока мы говорим локально, без каких-либо проблем.

Веб-консоль выдает такую ошибку:

generate-reel/:1 
        
        
       Failed to load resource: net::ERR_CONTENT_LENGTH_MISMATCH
(index):562 Error in generating reel: TypeError: Failed to fetch

В заголовках правильно указаны Content-Length и Content-Type, но когда я перехожу к "Response", там ничего нет... Я скопировал заголовок:

Request:

POST /generate-reel/ HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Connection: keep-alive
Content-Length: 14
Content-Type: application/json
Cookie: sessionid=lcjfb0cgcd0fzth59hd95wg7g4jcl9m5; csrftoken=DcqP62fbGQkoyKTdR1tWnUrF2degrOLD; lastReset=Thu Apr 25 2024; usageCount=3
Host: vast-everglades-19722-937b6a99a857.herokuapp.com
Origin: https://vast-everglades-19722-937b6a99a857.herokuapp.com
Referer: https://vast-everglades-19722-937b6a99a857.herokuapp.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36
X-CSRFToken: DcqP62fbGQkoyKTdR1tWnUrF2degrOLD
sec-ch-ua: "Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "macOS"

Ответ:

HTTP/1.1 200 OK
Report-To: {"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1714013226&sid=e11707d5-02a7-43ef-b45e-2cf4d2036f7d&s=yq0l506BqIrW%2F3MHhVj%2Bj2D7GdjU4YvL1xFQNDkYycQ%3D"}]}
Reporting-Endpoints: heroku-nel=https://nel.heroku.com/reports?ts=1714013226&sid=e11707d5-02a7-43ef-b45e-2cf4d2036f7d&s=yq0l506BqIrW%2F3MHhVj%2Bj2D7GdjU4YvL1xFQNDkYycQ%3D
Nel: {"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]}
Connection: keep-alive
Server: gunicorn
Date: Thu, 25 Apr 2024 02:47:23 GMT
Content-Type: video/mp4
X-Frame-Options: DENY
Content-Length: 8478634
Vary: Cookie
X-Content-Type-Options: nosniff
Referrer-Policy: same-origin
Cross-Origin-Opener-Policy: same-origin
Set-Cookie: sessionid=lcjfb0cgcd0fzth59hd95wg7g4jcl9m5; expires=Thu, 09 May 2024 02:47:23 GMT; HttpOnly; Max-Age=1209600; Path=/; SameSite=Lax; Secure
Via: 1.1 vegur

Состояние запроса (не удалось) net:ERR_CONTENT_LENGTH_MISMATCH

Вот логи + я печатаю каждый шаг процесса. После достижения значения "generate_reel completed in 16.87 seconds" должно просто загрузиться видео.

Я работаю на базовом дино, но у меня есть еще одно приложение, которое делает практически то же самое, и оно отлично работает, хотя запросы выполняются еще дольше.

Я буду очень признателен за любые идеи о том, что происходит, мне очень нужно, чтобы это работало.

Сначала я получал ошибку H12, поэтому постарался сократить время запроса, что мне удалось сделать с 40 до ±15 секунд, используя celery и сжимая размер видео, с которым работало приложение.

Я также попробовал проверить, отправляет ли мой сервер ответ клиенту, используя только основной код:

def test_response(request):
    return HttpResponse("Hello, World!", content_type='text/plain')

и он без проблем вернул Hello, World! в консоль.

Вернуться на верх