[bug]: Email notifications show a broken avatar for users without a profile photo
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 82/100
Direzione di ricerca
Inizia dalle tre assegnazioni di avatar_url in apps/api/plane/bgtasks/email_notification_task.py (intorno alle righe 200, 213 e 227), che antepongono l'URL base dell'API anche quando l'attore non ha un avatar. Poi controlla i rami {% if update.actor_detail.avatar_url %} in templates/emails/notifications/issue-updates.html (righe 53 e 194). È completato quando un attore senza foto riceve un valore avatar vuoto e il template mostra l'iniziale invece di un'immagine non funzionante.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Current behavior
In email notifications, the avatar for anyone without a profile photo is a broken image. The initial fallback in the template never shows.
apps/api/plane/bgtasks/email_notification_task.py (lines 200, 213 and 227 on preview) builds the URL as:
"avatar_url": f"{base_api}{actor.avatar_url}",
When the user has no avatar, actor.avatar_url is None (or ""), so the value becomes https://<host>/None (or just https://<host>). That string is truthy, so {% if update.actor_detail.avatar_url %} in templates/emails/notifications/issue-updates.html (lines 53 and 194) always takes the <img> branch, and the {% else %} initial is never used. https://<host>/None returns the web app's HTML, so mail clients show a broken image.
Expected behavior
Users without a photo show the initial, as the template intends.
Suggested fix
Only prefix when there is an avatar, in all three places:
"avatar_url": f"{base_api}{actor.avatar_url}" if actor.avatar_url else "",
Steps to reproduce
- Self-hosted instance with email notifications on.
- A user with no profile photo comments on or updates a work item.
- Another member gets the notification email: the actor's avatar is a broken image pointing to
https://<host>/None.
Environment
Self-hosted (Docker images built from the current release), seen October 2026.
- Lingua principale
- TypeScript
- Stelle
- 60.7k
- Fork
- 6k
- Merge medio
- 22h 10m
- PR unite (30g)
- 33
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di makeplane/plane
-
🐛 Bug: Calendar work items cannot be opened on mobileForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
[bug]: First day of the week section not translated when Idioma is EspañolForse già presa @deepcfr l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
makeplane/plane#9967 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[bug]: First day of the week section not translated when Idioma is EspañolForse già presa @Indira-kumar l’ha presa 3 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
[bug]: Analytics "Last 7 / 30 days" windows cover one day too manyForse già presa @manaskumar3003 l’ha presa 30 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
makeplane/plane#9830 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[feature]: Merge duplicate "Settings" and "Preferences" entries in the user avatar menuForse già presa @rudrag1410 l’ha presa 14 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
makeplane/plane#9793 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di makeplane/plane
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
wormhole-foundation/wormhole#5062 ·
I maintainer di solito rispondono entro 1 giorno
-
internal os specific
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
frostney/GocciaScript#1688 ·
I maintainer di solito rispondono entro 1 giorno
-
integration:hermes
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
vectorize-io/hindsight#5592 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
vercel/streamdown#673 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
apache/rocketmq-dashboard#6712 ·
I maintainer di solito rispondono entro 3 giorni