Description
Hello! I'm running Cap in a VM on a Proxmox host behind an Nginx reverse proxy. The initial issue I encountered was that AI features were not working, meaning that AI summaries and transcriptions were never automatically generated (and clicking "Retry Transcription" would never actually do anything, the spinner would spin indefinitely), even though the required API keys are configured and AI features are enabled. Then I've noticed that when navigating to the a specific Cap, roughly every second there is a request sent to /api/erpc and /s/:videoId. The response returned by these endpoints are as follows:
[{"_tag":"Exit","requestId":"27","exit":{"_tag":"Success","value":{"_tag":"Some","value":{"uploaded":2631508,"total":2631508,"startedAt":"2026-06-08T08:59:47.000Z","updatedAt":"2026-06-08T08:59:48.000Z","phase":"uploading","processingProgress":0,"processingMessage":null,"processingError":null}}}}]
and
0:{"a":"$@1","f":"","b":"LcBP1WymD_Tq-zLJeOey2"}
1:{"transcriptionStatus":null,"aiGenerationStatus":null,"aiTitle":null,"summary":null,"chapters":null}
respectively. The response returned by /api/erpc is interesting, because the phase property never actually changes from "uploading" to anything, even though the video itself is uploaded without issues. I'm not sure why this happens, perhaps my nginx configurations are incorrect somehow, but I guess since the status never actually changes to "uploaded", or "completed", or something similar, AI summaries and transcriptions are not generated.
I've looked through existing GitHub issues, but couldn't find anything that would match this issue exactly, though there were some where I saw some similarities. It is also worth mentioning that I've encountered the "detached ArrayBuffer.prototype.slice" error once, though I couldn't reproduce it later; I'm not entirely sure what to make of that.
I've also encountered other issues, I'm not sure whether they're related or not:
Bad header [4ddef7e0-8961a798a851e105.js:1:40578](https://captest.inspyre.systems/_next/static/chunks/4ddef7e0-8961a798a851e105.js)
NextJS 3
<anonymous> https://unpkg.com/@rive-app/canvas@2.27.1/rive.wasm:1043797
<anonymous> https://unpkg.com/@rive-app/canvas@2.27.1/rive.wasm:20818
<anonymous> https://unpkg.com/@rive-app/canvas@2.27.1/rive.wasm:20991
<anonymous> https://unpkg.com/@rive-app/canvas@2.27.1/rive.wasm:57682
<anonymous> https://unpkg.com/@rive-app/canvas@2.27.1/rive.wasm:55925
NextJS 43
and
Uncaught (in promise) Error: The file failed to load
NextJS 42
[4ddef7e0-8961a798a851e105.js:1:91310](https://captest.inspyre.systems/_next/static/chunks/4ddef7e0-8961a798a851e105.js)
NextJS 33
Reproduction
I'm not entirely sure how to reproduce this issue, I followed the instructions on self-hosting Cap. Nginx is installed on the Proxmox host itself and is configured with a public Cap and Minio endpoint. The configuration as follows:
server {
server_name captest.inspyre.systems;
# Timeouts for long-running uploads/streams
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_connect_timeout 75s;
# Required for large video uploads
client_max_body_size 100M;
ignore_invalid_headers off;
proxy_buffering off;
proxy_request_buffering off;
location / {
proxy_pass http://10.0.0.10:3000;
proxy_ssl_verify off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/captest.inspyre.systems/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/captest.inspyre.systems/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = captest.inspyre.systems) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name captest.inspyre.systems;
return 404; # managed by Certbot
}
The only differences between this and Minio Nginx config is the server name and the port to which the request is forwarded (9000). The .env file is as follows (secrets and passwords have been removed):
CAP_URL=https://captest.inspyre.systems
S3_PUBLIC_URL=https://miniotest.inspyre.systems
RESEND_API_KEY=...
RESEND_FROM_DOMAIN=inspyre.me
NEXTAUTH_SECRET=...
DATABASE_ENCRYPTION_KEY=...
MEDIA_SERVER_WEBHOOK_SECRET=...
MINIO_ROOT_PASSWORD=...
MYSQL_PASSWORD=...
OPENAI_API_KEY=...
GROQ_API_KEY=...
DEEPGRAM_API_KEY=...
Additional Context
- Cap version: latest docker install
- Operating system, version: Ubuntu server 26.04
Description
Hello! I'm running Cap in a VM on a Proxmox host behind an Nginx reverse proxy. The initial issue I encountered was that AI features were not working, meaning that AI summaries and transcriptions were never automatically generated (and clicking "Retry Transcription" would never actually do anything, the spinner would spin indefinitely), even though the required API keys are configured and AI features are enabled. Then I've noticed that when navigating to the a specific Cap, roughly every second there is a request sent to
/api/erpcand/s/:videoId. The response returned by these endpoints are as follows:[{"_tag":"Exit","requestId":"27","exit":{"_tag":"Success","value":{"_tag":"Some","value":{"uploaded":2631508,"total":2631508,"startedAt":"2026-06-08T08:59:47.000Z","updatedAt":"2026-06-08T08:59:48.000Z","phase":"uploading","processingProgress":0,"processingMessage":null,"processingError":null}}}}]and
respectively. The response returned by
/api/erpcis interesting, because the phase property never actually changes from "uploading" to anything, even though the video itself is uploaded without issues. I'm not sure why this happens, perhaps my nginx configurations are incorrect somehow, but I guess since the status never actually changes to "uploaded", or "completed", or something similar, AI summaries and transcriptions are not generated.I've looked through existing GitHub issues, but couldn't find anything that would match this issue exactly, though there were some where I saw some similarities. It is also worth mentioning that I've encountered the "detached ArrayBuffer.prototype.slice" error once, though I couldn't reproduce it later; I'm not entirely sure what to make of that.
I've also encountered other issues, I'm not sure whether they're related or not:
and
Reproduction
I'm not entirely sure how to reproduce this issue, I followed the instructions on self-hosting Cap. Nginx is installed on the Proxmox host itself and is configured with a public Cap and Minio endpoint. The configuration as follows:
The only differences between this and Minio Nginx config is the server name and the port to which the request is forwarded (9000). The
.envfile is as follows (secrets and passwords have been removed):Additional Context