# 馃敡 Soluci贸n de Problemas Comunes ## 脥ndice 1. [Backend](#backend) 2. [Frontend](#frontend) 3. [Base de Datos](#base-de-datos) 4. [Integraciones Externas](#integraciones-externas) 5. [Producci贸n](#producci贸n) --- ## Backend ### Error: "Conectado a PostgreSQL" no aparece **Causa:** Variables de entorno de DB incorrectas o PostgreSQL no est谩 corriendo. **Soluci贸n:** ```bash # Verificar PostgreSQL sudo systemctl status postgresql # Verificar variables de entorno cat backend/hotel_hacienda/.env | grep DB_ # Probar conexi贸n manual node -e "require('./backend/hotel_hacienda/src/db/connection')" ``` ### Error: CORS bloquea peticiones del frontend **Causa:** `URL_CORS` no coincide con el dominio del frontend. **Soluci贸n:** ```bash # En backend/.env URL_CORS=https://hotel.consultoria-as.com # Sin slash al final ``` ### Error: "Cannot find module 'pg'" **Causa:** Dependencias no instaladas. **Soluci贸n:** ```bash cd backend/hotel_hacienda npm install ``` ### Emails no se env铆an **Causa:** Credenciales SMTP incorrectas o servidor bloqueando. **Soluci贸n:** 1. Verificar variables `EMAIL_HOST`, `EMAIL_PORT`, `EMAIL_USER`, `EMAIL_PASS` 2. Para Gmail, usar "App Password", no la contrase帽a normal 3. Revisar logs: `pm2 logs hotel-api` --- ## Frontend ### Error: "Failed to fetch" o "Network Error" **Causa:** `VITE_API_BASE_URL` apunta a localhost en producci贸n. **Soluci贸n:** ```bash # Verificar .env del frontend cat frontend/Frontend-Hotel/.env # Debe ser: VITE_API_BASE_URL=https://hotel.consultoria-as.com/api ``` ### P谩gina en blanco despu茅s del build **Causa:** Rutas de React Router no configuradas en Nginx. **Soluci贸n:** Asegurar que Nginx tenga: ```nginx location / { try_files $uri $uri/ /index.html; } ``` ### Error: `useAuth` is not exported **Causa:** Bug conocido. `AuthContext.jsx` no exporta `useAuth`. **Soluci贸n temporal:** ```jsx // En vez de: import { useAuth } from "../context/AuthContext"; // Usar: import { AuthContext } from "../context/AuthContext"; const { user, login, logout } = useContext(AuthContext); ``` ### Tailwind no aplica estilos **Causa:** Tailwind v4 usa configuraci贸n diferente o `index.css` no tiene las directivas. **Soluci贸n:** Verificar que `src/index.css` contenga: ```css @tailwind base; @tailwind components; @tailwind utilities; ``` --- ## Base de Datos ### Error: "function newexpensev2 does not exist" **Causa:** Backup no restaurado completamente o funci贸n no migrada. **Soluci贸n:** ```bash # Restaurar backup completo sudo -u postgres psql -d hotel_hacienda -f backupcondatos22122025.sql # Verificar funciones existentes sudo -u postgres psql -d hotel_hacienda -c "\df public.*" ``` ### Error: "duplicate key value violates unique constraint" **Causa:** Algunas funciones SQL no son idempotentes y se llaman dos veces. **Soluci贸n:** Revisar la funci贸n SQL correspondiente. Agregar `IF EXISTS` o `ON CONFLICT`. ### Stock duplicado en inventario **Causa:** Dos procesos tocan el mismo stock (ver an谩lisis t茅cnico en `DOCUMENTACION_TECNICA.md`, secci贸n "Problema de duplicaci贸n en inventario"). **Soluci贸n:** Decidir si el stock se actualiza en `purchaseentry()` o en `setpaymentstatusv2()`, no en ambos. --- ## Integraciones Externas ### Stripe no devuelve datos **Causa:** `STRIPE_SECRET_KEY` incorrecta o modo live/test mezclado. **Soluci贸n:** ```bash # Verificar que la key comience con sk_test_ o sk_live_ cat backend/.env | grep STRIPE ``` ### API de Facturas devuelve error **Causa:** Token expirado, RFC incorrecto, o fechas fuera de rango. **Soluci贸n:** 1. Verificar `FACTURAS_API_TOKEN` y `FACTURAS_ISSUER_RFC` 2. Verificar que el rango de fechas no exceda el l铆mite de la API 3. Revisar logs del backend ### Banxico retorna error **Causa:** Token inv谩lido o serie incorrecta. **Soluci贸n:** 1. Verificar `BANXICO_TOKEN` 2. La serie usada es `SF43718` (Fix de USD/MXN) 3. Verificar que el token no haya expirado --- ## Producci贸n ### PM2 no inicia al reiniciar servidor **Soluci贸n:** ```bash pm2 startup pm2 save ``` ### Nginx error 502 Bad Gateway **Causa:** Backend no est谩 corriendo o escucha en puerto diferente. **Soluci贸n:** ```bash # Verificar proceso pm2 list # Verificar puerto sudo ss -tlnp | grep 3000 # Reiniciar pm2 restart hotel-api sudo systemctl restart nginx ``` ### Certificado SSL expirado **Soluci贸n:** ```bash sudo certbot renew --dry-run sudo certbot renew sudo systemctl reload nginx ``` --- > Para problemas no listados aqu铆, revisar los logs detallados: > - Backend: `pm2 logs hotel-api` > - Nginx: `sudo tail -f /var/log/nginx/hotel-error.log` > - PostgreSQL: `sudo tail -f /var/log/postgresql/postgresql-*.log`