Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
C
coderai
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexlab
coderai
Commits
46a2eabb
Commit
46a2eabb
authored
Feb 28, 2026
by
Stefy Lanza (nextime / spora )
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add request logging middleware to debug 422 errors
parent
56496d2f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
39 additions
and
0 deletions
+39
-0
coderai
coderai
+39
-0
No files found.
coderai
View file @
46a2eabb
...
@@ -961,6 +961,45 @@ app = FastAPI(
...
@@ -961,6 +961,45 @@ app = FastAPI(
lifespan
=
lifespan
,
lifespan
=
lifespan
,
)
)
# Add request logging middleware for debugging
@
app
.
middleware
(
"http"
)
async
def
log_requests
(
request
:
Request
,
call_next
):
"""Log all incoming requests for debugging."""
if
request
.
url
.
path
in
[
"/v1/chat/completions"
,
"/v1/completions"
]:
body
=
await
request
.
body
()
try
:
body_str
=
body
.
decode
(
'utf-8'
)
print
(
f
"
\n
=== INCOMING REQUEST ==="
)
print
(
f
"Path: {request.url.path}"
)
print
(
f
"Method: {request.method}"
)
print
(
f
"Headers: {dict(request.headers)}"
)
print
(
f
"Body: {body_str}"
)
# Try to parse as JSON to see if it's valid
try
:
json
.
loads
(
body_str
)
except
json
.
JSONDecodeError
as
e
:
print
(
f
"JSON Parse Error: {e}"
)
except
Exception
as
e
:
print
(
f
"Error logging request: {e}"
)
# Re-create request with body for downstream handlers
async
def
receive
():
return
{
"type"
:
"http.request"
,
"body"
:
body
}
request
=
Request
(
request
.
scope
,
receive
,
request
.
_send
)
try
:
response
=
await
call_next
(
request
)
if
request
.
url
.
path
in
[
"/v1/chat/completions"
,
"/v1/completions"
]:
print
(
f
"Response status: {response.status_code}"
)
return
response
except
Exception
as
e
:
print
(
f
"Error processing request: {e}"
)
raise
finally
:
if
request
.
url
.
path
in
[
"/v1/chat/completions"
,
"/v1/completions"
]:
print
(
f
"=== END REQUEST ===
\n
"
)
@
app
.
get
(
"/v1/models"
,
response_model
=
ModelList
)
@
app
.
get
(
"/v1/models"
,
response_model
=
ModelList
)
async
def
list_models
():
async
def
list_models
():
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment