story-research-zapwall/fixKnowledge/nostrimg-html-response-error.md
2026-01-05 22:51:30 +01:00

4.7 KiB

Problème : nostrimg.com retourne du HTML au lieu de JSON

Date

2025-01-27

Problème

L'endpoint https://nostrimg.com/api/upload retourne une page HTML au lieu d'une réponse JSON lors des tentatives d'upload.

Symptômes

  • Erreur 500 lors des appels à /api/nip95-upload?endpoint=https://nostrimg.com/api/upload
  • Message d'erreur : "Invalid upload response: Unexpected token '<', \"\n<!DOCTYPE \"... is not valid JSON"
  • Les uploads vers nostrimg.com échouent systématiquement
  • La réponse contient du HTML (page d'erreur) au lieu de JSON

Causes possibles identifiées

1. Headers HTTP manquants

Problème : Certains serveurs nécessitent des headers spécifiques pour retourner du JSON au lieu de HTML.

Solution appliquée :

  • Ajout du header Accept: application/json pour indiquer au serveur qu'on attend du JSON
  • Ajout du header User-Agent: zapwall.fr/1.0 car certains serveurs bloquent les requêtes sans User-Agent

2. URL d'endpoint incorrecte

Problème : L'URL https://nostrimg.com/api/upload pourrait ne pas être la bonne.

Vérifications à faire :

  • Vérifier la documentation de nostrimg.com
  • Tester l'endpoint directement avec curl ou Postman
  • Vérifier si l'endpoint nécessite un chemin différent (ex: /upload vs /api/upload)

3. Authentification requise

Problème : L'endpoint pourrait nécessiter une authentification (NIP-98 ou autre).

Vérifications à faire :

  • Vérifier si nostrimg.com nécessite une authentification
  • Tester avec un token d'authentification si disponible
  • Vérifier la documentation pour les exigences d'authentification

4. Endpoint non disponible ou modifié

Problème : L'endpoint pourrait ne plus être disponible, avoir changé d'URL, ou être temporairement indisponible.

Vérifications à faire :

  • Vérifier le statut du service nostrimg.com
  • Tester l'endpoint directement dans un navigateur
  • Vérifier les logs serveur pour voir le code de statut exact (404, 403, 500, etc.)

5. Configuration serveur

Problème : Le serveur nostrimg.com pourrait avoir une configuration qui retourne du HTML par défaut pour certaines requêtes.

Vérifications à faire :

  • Vérifier le Content-Type de la réponse
  • Vérifier si le serveur redirige vers une page d'erreur
  • Vérifier les logs pour voir exactement ce qui est retourné

Correctifs appliqués

1. Ajout de headers HTTP

headers['Accept'] = 'application/json'
headers['User-Agent'] = 'zapwall.fr/1.0'

2. Amélioration de la détection des erreurs HTML

  • Détection automatique des réponses HTML (commence par <!DOCTYPE, <html, ou <!)
  • Classification des erreurs (404, 403, 500)
  • Extraction du message d'erreur depuis le HTML (title, h1)
  • Messages d'erreur plus clairs avec suggestions

3. Logging amélioré

  • Aperçu du corps de la réponse HTML (500 caractères)
  • Classification de l'erreur (404, 403, 500)
  • Suggestions basées sur le type d'erreur détecté

Diagnostic

Pour diagnostiquer le problème avec nostrimg.com :

  1. Vérifier les logs serveur :

    • Regarder les logs de l'API pour voir le code de statut exact
    • Vérifier le contenu de la réponse HTML retournée
    • Identifier le type d'erreur (404, 403, 500, etc.)
  2. Tester l'endpoint directement :

    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 :

    • Consulter la documentation de nostrimg.com si disponible
    • Vérifier les exemples d'utilisation
    • Vérifier les exigences d'authentification
  4. Vérifier le statut du service :

    • Tester si le site nostrimg.com est accessible
    • Vérifier si l'endpoint /api/upload existe
    • Vérifier s'il y a des annonces de maintenance ou de changements

Recommandations

  1. Désactiver temporairement nostrimg.com :

    • Si le problème persiste, désactiver l'endpoint dans les paramètres
    • Utiliser d'autres endpoints fonctionnels (nostrcheck.me avec auth, etc.)
  2. Vérifier périodiquement :

    • Tester l'endpoint périodiquement pour voir s'il redevient fonctionnel
    • Surveiller les mises à jour de nostrimg.com
  3. Alternative :

    • Utiliser d'autres endpoints NIP-95 qui fonctionnent correctement
    • Configurer nostrcheck.me avec authentification NIP-98

Modifications

  • Fichier modifié : pages/api/nip95-upload.ts
  • Headers ajoutés :
    • Accept: application/json
    • User-Agent: zapwall.fr/1.0
  • Détection HTML améliorée :
    • Classification des erreurs (404, 403, 500)
    • Messages d'erreur plus clairs
    • Logging amélioré avec aperçu du HTML