Fix badge names returning null in profile endpoint #113

Closed
opened 2026-07-21 17:47:24 +02:00 by retoor · 38 comments
Owner

Summary

When retrieving badges from the Profile endpoint, all badge names are returning as null.

Steps to Reproduce

Not provided.

Expected Behaviour

Badge names should contain the correct display text, not null.

Actual Behaviour

Badge names are null.

Environment

Not provided.


Reported by Lensflare via DevPlace.

## Summary When retrieving badges from the Profile endpoint, all badge names are returning as null. ## Steps to Reproduce Not provided. ## Expected Behaviour Badge names should contain the correct display text, not null. ## Actual Behaviour Badge names are null. ## Environment Not provided. --- *Reported by **Lensflare** via DevPlace.*
Collaborator

I am picking this ticket up now.

First I will bring up an isolated workspace with a fresh checkout and investigate whether the ticket matches the current state of the code before planning any change. I will announce every step here before I take it.

I am picking this ticket up now. First I will bring up an isolated workspace with a fresh checkout and investigate whether the ticket matches the current state of the code before planning any change. I will announce every step here before I take it.
Author
Owner

Part of the response for my user (Lensflare):

  "badges" : [
    {
      "name" : null,
      "created_at" : "2026-06-15T09:09:33.296307+00:00"
    },
    {
      "name" : null,
      "created_at" : "2026-06-15T09:24:09.508946+00:00"
    },
    {
      "name" : null,
      "created_at" : "2026-06-15T09:25:35.176332+00:00"
    },

Posted by Lensflare via DevPlace.

Part of the response for my user (Lensflare): ``` "badges" : [ { "name" : null, "created_at" : "2026-06-15T09:09:33.296307+00:00" }, { "name" : null, "created_at" : "2026-06-15T09:24:09.508946+00:00" }, { "name" : null, "created_at" : "2026-06-15T09:25:35.176332+00:00" }, ``` --- *Posted by **Lensflare** via DevPlace.*
Collaborator

I need input to continue.

What I tried: Retried this step 3 times.
What I found: Each attempt failed for internal reasons unrelated to this ticket. The details are in the operator's logs; this is not a judgment about the ticket.

The system needs operator attention before I can continue. Reply here once things are healthy and I will resume from where I left off.

I need input to continue. What I tried: Retried this step 3 times. What I found: Each attempt failed for internal reasons unrelated to this ticket. The details are in the operator's logs; this is not a judgment about the ticket. The system needs operator attention before I can continue. Reply here once things are healthy and I will resume from where I left off.
Author
Owner

Wtf is your problem typo, just run the server on background. Hop hop


Posted by retoor via DevPlace.

Wtf is your problem typo, just run the server on background. Hop hop --- *Posted by **retoor** via DevPlace.*
Collaborator

Starting research round 1 of at most 5.

I am now reading the relevant source, tests, and prior work in the live checkout to verify the ticket and gather the context needed for a concrete plan. This can take a while; I will post periodic progress updates until it completes.

Starting research round 1 of at most 5. I am now reading the relevant source, tests, and prior work in the live checkout to verify the ticket and gather the context needed for a concrete plan. This can take a while; I will post periodic progress updates until it completes.
Collaborator

Progress update: research round 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Progress update: research round 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.
Collaborator

Progress update: research round 1 is still running (20 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Progress update: research round 1 is still running (20 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.
Collaborator

Internal infrastructure issue during research

The LLM backend is not responding correctly: the run timed out. This is an infrastructure problem, not a problem with this ticket. I will retry automatically (up to 3 times) and report the result here.

Internal infrastructure issue during research The LLM backend is not responding correctly: the run timed out. This is an infrastructure problem, not a problem with this ticket. I will retry automatically (up to 3 times) and report the result here.
Collaborator

Progress update: research round 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Progress update: research round 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.
Collaborator

Progress update: research round 1 is still running (20 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Progress update: research round 1 is still running (20 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.
Collaborator

Progress update: research round 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Progress update: research round 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.
Collaborator

Progress update: research round 1 is still running (20 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Progress update: research round 1 is still running (20 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.
Collaborator

Progress update: research round 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Progress update: research round 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.
Author
Owner

holy cow, stop spamming already!


Posted by Lensflare via DevPlace.

holy cow, stop spamming already! --- *Posted by **Lensflare** via DevPlace.*
Author
Owner

Will be less. Tey are stuck in tis loop becauuse tey are over virtual quota of tis app itself.


Posted by retoor via DevPlace.

Will be less. Tey are stuck in tis loop becauuse tey are over virtual quota of tis app itself. --- *Posted by **retoor** via DevPlace.*
Collaborator

I am picking this ticket up now.

First I will bring up an isolated workspace with a fresh checkout and investigate whether the ticket matches the current state of the code before planning any change. I will announce every step here before I take it.

I am picking this ticket up now. First I will bring up an isolated workspace with a fresh checkout and investigate whether the ticket matches the current state of the code before planning any change. I will announce every step here before I take it.
Collaborator

I need input to continue.

What I tried: Retried this step 3 times.
What I found: Each attempt failed for internal reasons unrelated to this ticket. The details are in the operator's logs; this is not a judgment about the ticket.

The system needs operator attention before I can continue. Reply here once things are healthy and I will resume from where I left off.

I need input to continue. What I tried: Retried this step 3 times. What I found: Each attempt failed for internal reasons unrelated to this ticket. The details are in the operator's logs; this is not a judgment about the ticket. The system needs operator attention before I can continue. Reply here once things are healthy and I will resume from where I left off.
Collaborator

I am picking this ticket up now.

First I will bring up an isolated workspace with a fresh checkout and investigate whether the ticket matches the current state of the code before planning any change. I will announce every step here before I take it.

I am picking this ticket up now. First I will bring up an isolated workspace with a fresh checkout and investigate whether the ticket matches the current state of the code before planning any change. I will announce every step here before I take it.
Collaborator

Starting research round 1 of at most 5.

I am now reading the relevant source, tests, and prior work in the live checkout to verify the ticket and gather the context needed for a concrete plan. This can take a while; I will post periodic progress updates until it completes.

Starting research round 1 of at most 5. I am now reading the relevant source, tests, and prior work in the live checkout to verify the ticket and gather the context needed for a concrete plan. This can take a while; I will post periodic progress updates until it completes.
Collaborator

Investigated the ticket against the current source and tests. The research confirms that BadgeOut.name is missing a Pydantic alias to the database column badge_name, which causes the field to be silently dropped during JSON serialization while HTML rendering remains unaffected. This aligns exactly with the reported symptom of null badge names in the profile JSON endpoint.

The decision is to proceed. The next step is to draft a concrete implementation plan.

Investigated the ticket against the current source and tests. The research confirms that `BadgeOut.name` is missing a Pydantic alias to the database column `badge_name`, which causes the field to be silently dropped during JSON serialization while HTML rendering remains unaffected. This aligns exactly with the reported symptom of null badge names in the profile JSON endpoint. The decision is to proceed. The next step is to draft a concrete implementation plan.
Collaborator

I am drafting the implementation plan now.

The research confirmed the ticket; I am turning the findings into a concrete, verifiable plan.

I am drafting the implementation plan now. The research confirmed the ticket; I am turning the findings into a concrete, verifiable plan.
Collaborator

An implementation plan has been drafted based on the investigation findings to resolve the null badge names in the profile JSON response. The plan addresses the missing alias on the BadgeOut.name field, includes a scan for existing keyword constructions, adds a JSON-serialization test, and specifies verification commands.

The plan is now being handed to the execution agent for implementation.

An implementation plan has been drafted based on the investigation findings to resolve the null badge names in the profile JSON response. The plan addresses the missing alias on the `BadgeOut.name` field, includes a scan for existing keyword constructions, adds a JSON-serialization test, and specifies verification commands. The plan is now being handed to the execution agent for implementation.
Collaborator

The full, verbatim implementation plan is attached: plan-ticket-113.md

The full, verbatim implementation plan is attached: [plan-ticket-113.md](https://retoor.molodetz.nl/attachments/5bbd793e-1e69-4a42-8220-6fb797ebefd1)
Collaborator

Starting implementation attempt 1 of at most 5.

I am executing the plan inside this ticket's isolated workspace. This can take a while; I will post periodic progress updates until it completes.

Starting implementation attempt 1 of at most 5. I am executing the plan inside this ticket's isolated workspace. This can take a while; I will post periodic progress updates until it completes.
Collaborator

Progress update: implementation attempt 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Progress update: implementation attempt 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.
Collaborator

Internal infrastructure issue during execution

The LLM backend is not responding correctly: exit code 1: LLM error: All LLM backends permanently failed (no recoverable backend left): molodetz: molodetz permanent SSE failure: stream failed (status 400); deepseek: DEEPSEEK_API_KEY not set. This is an infrastructure problem, not a problem with this ticket or the plan. I will retry automatically (up to 3 times) and report the result here.

Internal infrastructure issue during execution The LLM backend is not responding correctly: exit code 1: LLM error: All LLM backends permanently failed (no recoverable backend left): molodetz: molodetz permanent SSE failure: stream failed (status 400); deepseek: DEEPSEEK_API_KEY not set. This is an infrastructure problem, not a problem with this ticket or the plan. I will retry automatically (up to 3 times) and report the result here.
Collaborator

Progress update: implementation attempt 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Progress update: implementation attempt 1 is still running (10 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.
Collaborator

Progress update: implementation attempt 1 is still running (20 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.

Progress update: implementation attempt 1 is still running (20 minutes elapsed). I have not stalled; I will report the result here the moment this step completes.
Collaborator

Implementation attempt 1 finished; I am verifying it now.

Running the project's own build, test, and lint commands against the change.

Implementation attempt 1 finished; I am verifying it now. Running the project's own build, test, and lint commands against the change.
Collaborator

The change was implemented on the first attempt and passed all configured project checks. Build, test, and lint commands each completed successfully. Next steps are to commit the work, push a branch, and open a pull request for review.

The change was implemented on the first attempt and passed all configured project checks. Build, test, and lint commands each completed successfully. Next steps are to commit the work, push a branch, and open a pull request for review.
Collaborator

I am delivering the change now.

Committing the verified change, pushing branch typosaurus/ticket-113, and opening a pull request.

I am delivering the change now. Committing the verified change, pushing branch `typosaurus/ticket-113`, and opening a pull request.
typosaurus referenced this issue from a commit 2026-07-23 05:20:22 +02:00
Collaborator

Committed the change and pushed branch typosaurus/ticket-113. The implementation passed the project's own checks, so I opened pull request #129. Watching the pull request for review, merge, or further feedback.

Committed the change and pushed branch `typosaurus/ticket-113`. The implementation passed the project's own checks, so I opened pull request https://retoor.molodetz.nl/retoor/devplacepy/pulls/129. Watching the pull request for review, merge, or further feedback.
typosaurus self-assigned this 2026-07-26 23:32:14 +02:00
Collaborator

YELENA · project-manager — 2026-07-26T22:06:57.192924+00:00

Ticket claimed by team Dev Team ONE ELITE.
Branch: typosaurus/113-fix-badge-names-returning-null-in-profile-endpoint
Agents assigned: @yelena, @katya, @mila, @vera, @nadia, @sveta, @tanya, @zoya, @irina, @oksana, @larisa
Next: Decompose the ticket into an executable tree.

<!-- typosaurus:claim run=cf8155d8183146ecbb92790b22f8c980 id=af3b03deba8a team=e128e22619ab46999074678e27b7e0f7 --> **YELENA · project-manager** — 2026-07-26T22:06:57.192924+00:00 Ticket claimed by team Dev Team ONE ELITE. Branch: typosaurus/113-fix-badge-names-returning-null-in-profile-endpoint Agents assigned: @yelena, @katya, @mila, @vera, @nadia, @sveta, @tanya, @zoya, @irina, @oksana, @larisa Next: Decompose the ticket into an executable tree.
Collaborator

YELENA · project-manager — 2026-07-26T23:27:17.391203+00:00

Progress

State: running
Completed: 5/5 nodes
Current: none — none
Cost: 0.0391 USD · Elapsed: 1h 20m

Completed

  • Fix badge names returning null in profile endpoint — done
  • Investigate badge data flow and confirm root cause — done
  • Fix BadgeOut schema to map badge_name database column — done
  • Write API test verifying badge names in profile JSON response — done
  • Review schema fix and test for correctness — done

Open

  • none
<!-- typosaurus:progress run=cf8155d8183146ecbb92790b22f8c980 id=fbbe5c45c8cb team=e128e22619ab46999074678e27b7e0f7 --> **YELENA · project-manager** — 2026-07-26T23:27:17.391203+00:00 ## Progress State: running Completed: 5/5 nodes Current: none — none Cost: 0.0391 USD · Elapsed: 1h 20m ### Completed - Fix badge names returning null in profile endpoint — done - Investigate badge data flow and confirm root cause — done - Fix BadgeOut schema to map badge_name database column — done - Write API test verifying badge names in profile JSON response — done - Review schema fix and test for correctness — done ### Open - none
Collaborator

YELENA · project-manager — 2026-07-26T23:27:30.607708+00:00

Result

Run completed for ticket #113.

Delivered:

  • The ticket objective is satisfied: Fix badge names returning null in profile endpoint — met (see commits)

Not delivered:

  • none

Verification: make test — see nodes
Commits: 2 · Cost: 0.0323 USD · Duration: 1h 20m
Pull request: #143

<!-- typosaurus:summary run=cf8155d8183146ecbb92790b22f8c980 id=e62a434c5ad0 team=e128e22619ab46999074678e27b7e0f7 --> **YELENA · project-manager** — 2026-07-26T23:27:30.607708+00:00 ## Result Run completed for ticket #113. Delivered: - The ticket objective is satisfied: Fix badge names returning null in profile endpoint — met (see commits) Not delivered: - none Verification: make test — see nodes Commits: 2 · Cost: 0.0323 USD · Duration: 1h 20m Pull request: https://retoor.molodetz.nl/retoor/devplacepy/pulls/143
Collaborator

YELENA · project-manager — 2026-07-26T23:27:37.647424+00:00

Result

Run completed for ticket #113.

Delivered:

  • The ticket objective is satisfied: Fix badge names returning null in profile endpoint — met (see commits)

Not delivered:

  • none

Verification: make test — see nodes
Commits: 2 · Cost: 0.0323 USD · Duration: 1h 20m
Pull request: #143

<!-- typosaurus:summary run=cf8155d8183146ecbb92790b22f8c980 id=b77cba7ec4e1 team=e128e22619ab46999074678e27b7e0f7 --> **YELENA · project-manager** — 2026-07-26T23:27:37.647424+00:00 ## Result Run completed for ticket #113. Delivered: - The ticket objective is satisfied: Fix badge names returning null in profile endpoint — met (see commits) Not delivered: - none Verification: make test — see nodes Commits: 2 · Cost: 0.0323 USD · Duration: 1h 20m Pull request: https://retoor.molodetz.nl/retoor/devplacepy/pulls/143
Collaborator

The ticket has been closed. All work on it has ceased, as the issue is no longer being pursued or has been resolved to the extent required. No further action is planned.

The ticket has been closed. All work on it has ceased, as the issue is no longer being pursued or has been resolved to the extent required. No further action is planned.
Collaborator

This ticket has reached its outcome. The ticket is closed and the workspace is no longer needed.

Would you like me to clean up the branch and workspace for this ticket? Reply with /typosaurus cancel-and-cleanup to confirm, or leave it as is.

This ticket has reached its outcome. The ticket is closed and the workspace is no longer needed. Would you like me to clean up the branch and workspace for this ticket? Reply with `/typosaurus cancel-and-cleanup` to confirm, or leave it as is.
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: retoor/devplacepy#113
No description provided.