Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[bug]: Email notifications show a broken avatar for users without a profile photo

Abierto Apto para principiantes
#10,009 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@gurnoorpannu ya está trabajando en esto.

Desde el 14/10/2026.

  • #10012 de @gurnoorpannu — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
82/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

Línea de trabajo

Empieza por las tres asignaciones de avatar_url en apps/api/plane/bgtasks/email_notification_task.py (alrededor de las líneas 200, 213 y 227), que anteponen la URL base de la API incluso cuando el actor no tiene avatar. Luego revisa las ramas {% if update.actor_detail.avatar_url %} en templates/emails/notifications/issue-updates.html (líneas 53 y 194). Está listo cuando un actor sin foto obtiene un valor de avatar vacío y la plantilla muestra la inicial en lugar de una imagen rota.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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
  1. Self-hosted instance with email notifications on.
  2. A user with no profile photo comments on or updates a work item.
  3. 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.

Lenguaje dominante
TypeScript
Estrellas
60.7k
Forks
6k
Merge medio
1 d 11 h
PR fusionados (30 d)
50

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de makeplane/plane

Todos los issues de makeplane/plane

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.