Originally created by @priyadharsan1403 on GitHub (Jun 18, 2025).
Check Existing Issues
I have searched the existing issues and discussions.
I am using the latest version of Open WebUI.
Installation Method
Git Clone
Open WebUI Version
v0.3.11
Ollama Version (if applicable)
No response
Operating System
ubuntu 22.04
Browser (if applicable)
chrome
Confirmation
I have read and followed all instructions in README.md.
I am using the latest version of both Open WebUI and Ollama.
I have included the browser console logs.
I have included the Docker container logs.
I have provided every relevant configuration, setting, and environment variable used in my setup.
I have clearly listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc).
I have documented step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation. My steps:
Start with the initial platform/version/OS and dependencies used,
Specify exact install/launch/configure commands,
List URLs visited, user input (incl. example values/emails/passwords if needed),
Describe all options and toggles enabled or changed,
Include any files or environmental changes,
Identify the expected and actual result at each stage,
Ensure any reasonably skilled user can follow and hit the same issue.
Expected Behavior
to header should pass to open webui post where it running 3001
Actual Behavior
my nginx script :
server {
listen 80;
listen [::]:80;
server_name subdomain.domain.com;
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @priyadharsan1403 on GitHub (Jun 18, 2025).
Check Existing Issues
Installation Method
Git Clone
Open WebUI Version
v0.3.11
Ollama Version (if applicable)
No response
Operating System
ubuntu 22.04
Browser (if applicable)
chrome
Confirmation
README.md.Expected Behavior
to header should pass to open webui post where it running 3001
Actual Behavior
my nginx script :
server {
listen 80;
listen [::]:80;
server_name subdomain.domain.com;
location /nexus_chat {
# Authentication
auth_request /auth-verify;
}
# Auth verification endpoint (internal)
location = /auth-verify {
internal;
proxy_pass http://127.0.0.1:5000/verify$is_args$args;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
proxy_set_header Authorization $http_authorization;
add_header X-Debug-User-ID $upstream_http_x_user_id always;
add_header X-Debug-Email $upstream_http_x_user_email always;
# TEMP: Log something to be sure it's hit
access_log /var/log/nginx/verify_access.log;
}
# Catch-all for any other /nexus_chat/* paths (rewrite to root for Open WebUI)
location / {
#rewrite ^/nexus_chat/(.*) /$1 break;
proxy_pass http://127.0.0.1:3001;
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_set_header X-User-Email $user_email;
proxy_set_header X-User-Name $user_name;
proxy_set_header X-User-ID $user_id;
proxy_set_header X-User-Org $user_org;
proxy_set_header X-API-Key $api_key;
}
}
my authmiddle script
const express = require('express');
const jwt = require('jsonwebtoken');
const { Pool } = require('pg');
const axios = require('axios');
const app = express();
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
ssl: {
rejectUnauthorized: false, // Only use this in development
},
});
app.get('/verify', async (req, res) => {
try {
console.log('req.query:', req.query);
console.log('req.headers:', req.headers);
console.log('req.body:', req.body);
} catch (error) {
console.error('Auth verify error:', error);
res.status(401).send('Invalid token');
}
});
async function ensureWebUIUser(user, userId, orgId) {
const webuiUserId =
user_${userId}_org_${orgId};const base = 'http://open-webui:8080/api/v1';
const headers = {
Authorization:
Bearer ${process.env.WEBUI_API_KEY}};
try {
// Check if user exists
await axios.get(
${base}/users/${webuiUserId}, { headers });} catch (err) {
const status = err.response?.status;
console.log(
User lookup returned status ${status});if (status !== 404) {
console.error('Error checking user:', err.message);
return;
}
}
}
app.listen(3000, () => {
console.log('Auth middleware server running on port 3000');
});
docker setup :
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: nexus-chat-webui
ports:
- "3001:8080"
environment:
Steps to Reproduce
like this subdomain.domain.com?token=hjsdjhkadjhjkj
here is the isssue unable to pass the header
Logs & Screenshots
{
"detail": "Your provider has not provided a trusted header. Please contact your administrator for assistance."
}
Additional Information
No response
@tjbck commented on GitHub (Jun 18, 2025):
Unable to reproduce, keep us updated.