{"timestamp":"2026-05-05T14:50:03.903Z","environment":"production","tokenPriority":{"note":"Database tokens have HIGHER priority than environment tokens","order":["1. Database token (user-saved)","2. Environment token (fallback only)"]},"databaseToken":{"status":"CONFIGURED","hasAccessToken":true,"tokenPreview":"sl.u.AGdNh8KxaF...O1a-","hasRefreshToken":true,"expiry":"1777932384529","updatedAt":"2026-05-04T18:06:24.000Z","testResult":{"success":false,"error":"Token inválido o expirado. Genera un nuevo token en Dropbox App Console."}},"environmentToken":{"hasToken":true,"tokenPreview":"sl.u.AGYYl15Q3T...","testResult":{"success":false,"error":"Token inválido o expirado. Genera un nuevo token en Dropbox App Console."},"warning":"⚠️ Environment tokens are only used as FALLBACK when no database token exists"},"oauthConfig":{"DROPBOX_APP_KEY":"x3rw...sm13 (length: 15)","DROPBOX_APP_SECRET":"SET (length: 15)","configured":true,"redirectUri":"https://sonidoliquido.com/api/dropbox/callback"},"databaseConfig":{"DATABASE_URL":"libsql://sonido-liquido-zaque.... (length: 52)","DATABASE_AUTH_TOKEN":"SET (length: 279)"},"instructions":{"If token shows 'expired' after saving":["1. Make sure you generated a NEW token from Dropbox App Console","2. Click 'Verificar Conexión (Forzar)' to bypass cache","3. Check if DROPBOX_ACCESS_TOKEN env var has an OLD token (this would override your new one)","4. If env var has old token, REMOVE it from Netlify - database tokens have priority now"],"To use OAuth (recommended)":["1. Set DROPBOX_APP_KEY and DROPBOX_APP_SECRET in Netlify","2. Add redirect URI in Dropbox App Console: https://sonidoliquido.com/api/dropbox/callback","3. Click 'Conectar con Dropbox' button"]}}