Skip to content

Public links: an invalid expiry is stored, then the agent's link list returns 500 and the panel says "No public links" #3583

Closed

Description

@AndriiPasternak31

Build: v1.0.0-rc2 (96f88f9). Found during release-test row B16 (abilityai/trinity-enterprise#847), API + light 1440. Present at v0.9.5 too.

Steps

  1. As the owner: POST /api/agents/<agent>/public-links with {"name":"x","expires_at":"not-a-date"}.
  2. GET /api/agents/<agent>/public-links; open Sharing → Distribution → Public links.

Expected

A 422 validation error, and nothing stored.

Actual

  • The create returns 500, and the row is stored anyway.
  • Every later list of that agent's links returns 500. The owner panel shows "No public links" although the agent has links. Recovery needs a database delete.

Where

  • expires_at is accepted as a free string and stored as is; src/backend/routers/public_links.py _link_to_response then calls datetime.fromisoformat on it for every row.
  • src/frontend/src/components/PublicLinksPanel.vue loadLinks swallows the error and renders the empty state.

Acceptance criteria

  • An invalid expires_at is rejected with 422 and not stored.
  • A list failure is shown as a failure, not as "No public links".

Activity

  1. AndriiPasternak31 commented on Oct 12, 2026

    @AndriiPasternak31
    ContributorAuthor

    Re-triaged for 1.0 (#847, row B16): P3 → P2. The panel says "No public links" while the agent's other links stay live, so the owner can't see or revoke them from the UI. Same at v0.9.5, so not a release blocker: release-note, or fix if cheap (date validation + an error state).

  2. added
    status-readyGreenlit and ready for development (vetted; counterpart to status-incubating)
    on Oct 12, 2026
  3. added and removed
    status-readyGreenlit and ready for development (vetted; counterpart to status-incubating)
    on Oct 19, 2026
  4. self-assigned this
    on Oct 19, 2026
  5. obasilakis commented on Oct 19, 2026

    @obasilakis
    Contributor

    /claim

  6. github-actions commented on Oct 19, 2026

    @github-actions

    @obasilakis This issue is already assigned to obasilakis. Use /unclaim first if you want to take over.

  7. added a commit that references this issue on Oct 19, 2026
    3a0f5d6
  8. added
    status-in-devMerged to dev, awaiting release cut to main
    and removed on Oct 19, 2026
  9. removed
    status-in-devMerged to dev, awaiting release cut to main
    on Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions