Bring-your-own-storage (PlanetHosted) images show "image not found": GetSignedUrl asks the node for <path>/signed
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 82/100
Research direction
Read Sdk/Models/MessageAttachment.cs and trace GetSignedUrl for PlanetHosted attachments. Compare its behavior with the validation in MessageService.PrepareAttachmentsAsync and ValidatePlanetHostedAttachment. Done when planet-hosted image locations are used successfully by clients and the relevant attachment tests pass; the issue does not name a test file.
Written by the indexing model from the issue text.
Description
What happens: With planet storage (BYO S3) enabled, uploads succeed and the message saves with a
PlanetHosted attachment at the public base URL, but every client shows "image not found".
Cause: Sdk/Models/MessageAttachment.cs GetSignedUrl handles Tenor/Klipy and proxy/ paths, and
otherwise strips the host and asks the message's node for <path>/signed. A planet-hosted attachment lives
on the planet's own public base URL (e.g. https://media.example.org/valour-media/...), so the node gets
GET /valour-media/.../signed, has no such route, returns 404, and the client renders "image not found".
Suggested fix: in GetSignedUrl, return Location as-is when PlanetHosted is true (the server already
validates that planet-hosted locations sit under the planet's registered public base URL in
MessageService.PrepareAttachmentsAsync / ValidatePlanetHostedAttachment).
Workaround we use: a reverse proxy in front of the node answers GET /valour-media/(.+)/signed with
https://<public base>/$1.
Environment: self-hosted community node (Docker, main-latest, reports v0.9.17), federated under the official hub; planet migrated from the hub.
- Dominant language
- C#
- Stars
- 411
- Forks
- 41
- Avg merge
- 5d 4h
- Merged PRs (30d)
- 13
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Valour-Software/Valour
-
Needs Looking At
Difficulty 1/5 Under an hour Newbie friendliness 85/100
Valour-Software/Valour#1735 ·
Maintainers usually reply within 1 day
-
Good First Issue Needs Looking At
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Valour-Software/Valour#1724 ·
Maintainers usually reply within 1 day
-
Needs Looking At
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Valour-Software/Valour#1718 · 1 comment ·
Maintainers usually reply within 1 day
-
Needs Looking At
Difficulty 3/5 1-2 days Newbie friendliness 45/100
Valour-Software/Valour#1738 ·
Maintainers usually reply within 1 day
-
Needs Looking At
Difficulty 3/5 1-2 days Newbie friendliness 52/100
Valour-Software/Valour#1737 ·
Maintainers usually reply within 1 day
All issues in Valour-Software/Valour
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
juandresrodca/AdminForge#54 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
要トリアージ 辞書
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
yksr-melt/Meltype#1625 · 1 reaction ·
Maintainers usually reply within 1 day
-
Docs typoOpen
Difficulty 1/5 Under an hour Newbie friendliness 78/100
MonoGame/docs.monogame.github.io#328 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
space-wizards/RobustToolbox#7197 ·
Maintainers usually reply within 1 day