story-research-zapwall/fixKnowledge/nostrimg-500-error-diagnosis.md
Nicolas Cantu a52a261459 Document nostrimg.com 500 error diagnosis
**Motivations:**
- Document the code verification for nostrimg.com 500 errors
- Explain what was checked and what might be the issue
- Provide next steps for diagnosis

**Root causes:**
- Unknown: Could be code issue or server-side issue
- Need detailed logs to determine

**Correctifs:**
- Documented all code verifications
- Listed potential issues to check
- Provided next steps for diagnosis

**Evolutions:**
- None

**Pages affectées:**
- fixKnowledge/nostrimg-500-error-diagnosis.md (new)
2026-01-05 22:56:36 +01:00

4.1 KiB

Diagnostic : Erreurs 500 avec nostrimg.com

Date

2025-01-27

Problème

L'endpoint https://nostrimg.com/api/upload retourne systématiquement des erreurs 500 lors des tentatives d'upload.

Vérifications effectuées du code

1. Format de la requête

  • FormData : Utilisation correcte du package form-data npm
  • Champ de fichier : Nom de champ 'file' (standard NIP-95)
  • Stream : Utilisation de fs.createReadStream() pour lire le fichier
  • Filename : Transmission du nom de fichier original ou généré
  • Content-Type : Transmission du type MIME du fichier

2. Headers HTTP

  • Content-Type : Généré automatiquement par form-data avec le boundary correct
    • Format : multipart/form-data; boundary=...
  • Accept : application/json (ajouté)
  • User-Agent : zapwall.fr/1.0 (ajouté)
  • Authorization : Ajouté uniquement si token NIP-98 fourni (non requis pour nostrimg.com)

3. Configuration de la requête

  • Méthode : POST (correct)
  • URL : https://nostrimg.com/api/upload (correcte)
  • Timeout : 30 secondes (raisonnable)
  • Gestion des redirections : Support des 301, 302, 307, 308

4. Gestion des erreurs

  • Détection des réponses HTML
  • Classification des erreurs (404, 403, 500)
  • Messages d'erreur clairs
  • Logging amélioré

Points à vérifier (non confirmés)

1. Nom du champ de fichier

  • Actuel : 'file'
  • Possible problème : Certains endpoints NIP-95 utilisent 'image', 'upload', ou d'autres noms
  • Action : Le code utilise 'file' qui est le standard NIP-95, mais nostrimg.com pourrait attendre un autre nom

2. Format de la réponse attendue

  • Actuel : Le code attend du JSON
  • Possible problème : nostrimg.com pourrait retourner un format différent ou nécessiter des paramètres spécifiques

3. Authentification

  • Actuel : Pas d'authentification pour nostrimg.com
  • Possible problème : nostrimg.com pourrait nécessiter une authentification (NIP-98 ou autre)

4. Taille de fichier

  • Actuel : Limite de 50MB côté proxy
  • Possible problème : nostrimg.com pourrait avoir une limite différente

Logging ajouté

Pour diagnostiquer le problème, un logging détaillé a été ajouté spécifiquement pour nostrimg.com :

Logs de requête

  • URL complète
  • Méthode HTTP
  • Nom du champ de fichier
  • Nom du fichier
  • Type MIME
  • Taille du fichier
  • Tous les headers (Content-Type, Accept, User-Agent, Authorization)

Logs de réponse

  • Code de statut HTTP
  • Message de statut
  • Headers de réponse (Content-Type, Content-Length)
  • Aperçu du corps de la réponse (500 premiers caractères)
  • Longueur du corps
  • Détection HTML

Prochaines étapes

  1. Activer nostrimg.com temporairement et vérifier les logs serveur pour voir :

    • Les détails exacts de la requête envoyée
    • La réponse exacte du serveur nostrimg.com
    • Le code de statut et les headers de réponse
  2. Tester avec curl pour comparer :

    curl -X POST https://nostrimg.com/api/upload \
      -H "Accept: application/json" \
      -H "User-Agent: zapwall.fr/1.0" \
      -F "file=@test.jpg"
    
  3. Vérifier la documentation de nostrimg.com si disponible :

    • Nom de champ attendu
    • Headers requis
    • Format de réponse
    • Limites de taille
  4. Tester avec un nom de champ différent si les logs indiquent un problème :

    • 'image' au lieu de 'file'
    • 'upload' au lieu de 'file'

Conclusion

Le code semble correct selon les standards NIP-95 :

  • Format multipart/form-data correct
  • Headers HTTP appropriés
  • Gestion des erreurs robuste
  • Logging détaillé pour diagnostic

Hypothèse principale : Le problème semble être côté serveur nostrimg.com plutôt que dans notre code. Les logs détaillés permettront de confirmer ou d'infirmer cette hypothèse.

Modifications

  • Fichier modifié : pages/api/nip95-upload.ts
  • Logging ajouté : Logs détaillés pour les requêtes et réponses vers nostrimg.com
  • Commentaire ajouté : Note sur le nom de champ 'file' et alternatives possibles