
Contenido
- Triaje: del síntoma a la primera comprobación
- Qué ha cambiado en BTP entre 2024 y 2026
- Problema 1: 401 unauthorized con credenciales de service key
- Problema 2: Internal Server Errors al abrir Integration Suite
- Problema 3: navegación rota y enlaces muertos
- Problema 4: fallos de destinos en apps CAP
- Problema 5: apps que se detienen de un día para otro en trial y free tier
- Preguntas frecuentes
Si SAP BTP Cockpit le está devolviendo errores, probablemente sea una de cinco cosas. Un 401 con una service key casi siempre se debe a la solicitud OAuth, no a las credenciales. Un Internal Server Error en Integration Suite suele significar que faltan colecciones de roles o que hay una sesión obsoleta. Los enlaces rotos vienen de boosters configurados antes de que cambiara la subcuenta. Los fallos de destinos en CAP suelen ser un nombre que no coincide o un binding que falta. Y una app que ayer funcionaba en una cuenta trial puede haber perdido su base de datos durante la noche. Esta guía es para desarrolladores y consultores de integración que trabajan en subcuentas de Cloud Foundry. La tabla de triaje de abajo le indica qué revisar primero.
La primera vez que vi el banner rojo de error en SAP BTP Cockpit, di por hecho que había hecho algo mal. Enlace equivocado, sesión caducada.
Después de la tercera o cuarta vez, quedó claro que no era solo yo.
En las semanas siguientes llevé un cuaderno y anoté cada vez que algo fallaba. Internal Server Errors al abrir Integration Suite. Destinos que parecían válidos y se negaban a conectar. Apps que ayer funcionaban y hoy se colgaban. Fueron apareciendo patrones. Pocos estaban documentados en un sitio útil, y el propio Cockpit casi no da nada con lo que trabajar.
| Síntoma | Causa más probable | Revise primero |
|---|---|---|
| 401 Unauthorized al llamar a una API con una service key | Tipo de concesión incorrecto, URL de token incorrecta o autorizaciones que faltan | Decodifique el token y lea aud y scope |
| Internal Server Error al abrir Integration Suite | Faltan colecciones de roles o sesión obsoleta | Las colecciones de roles de su usuario y, después, un cierre de sesión completo |
| Un booster o mosaico abre una página en blanco o equivocada | La subcuenta cambió después de ejecutar el booster | Navegue por el árbol del Cockpit en su lugar |
| App CAP: «destination not found» o errores de autenticación | Nombre que no coincide, binding que falta, tipo de OData incorrecto | cds.requires y xs-app.json frente al nombre en el Cockpit |
| La app funcionaba ayer y hoy se cuelga (trial) | La instancia de HANA Cloud se detuvo durante la noche | Estado de la instancia de base de datos en SAP HANA Cloud Central |
Cloud Foundry, Kyma y el entorno ABAP se ejecutan sobre la base multi-cloud de SAP, que es la opción por defecto para los clientes nuevos desde 2020. El entorno Neo, más antiguo, solo recibe actualizaciones de seguridad y cumplimiento, y SAP ha fijado su cierre para el 31 de diciembre de 2028. Casi todos los problemas de abajo son problemas de Cloud Foundry.
Dos cambios de nombre siguen confundiendo a quienes leen guías antiguas. SAP Launchpad service pasó a llamarse SAP Build Work Zone, standard edition, en enero de 2023. Y muchos mosaicos y boosters se reconstruyeron a medida que crecía SAP Build, por lo que las capturas de pantalla de 2022 a menudo ya no coinciden con lo que usted ve.
En RISE with SAP, BTP suele llegar como un derecho basado en créditos dentro del contrato. El Cockpit es el mismo. Lo que cambia es quién controla la cuenta global en su organización, así que localice a esa persona antes de necesitar un derecho nuevo.
Crea una instancia de servicio, genera una service key, copia el ID de cliente y el secreto en Postman, añade la URL del token y envía la solicitud. 401. Sin ningún detalle.
Vuelve a copiar el secreto. Sigue fallando. El servicio está bien. El flujo OAuth no.
Qué revisar, por orden:
- Tipo de concesión (grant type). El acceso técnico a la mayoría de las API de servicios de BTP usa
client_credentials. Indíquelo de forma explícita en Postman. No se fíe del valor por defecto. - URL del token. Tómela de la service key. Algunas claves dan un
tokenurl; otras dan laurlde XSUAA, a la que se añade/oauth/token. No tome nunca una prestada de otra subcuenta. - Cabeceras. Para una llamada directa de token, envíe
Content-Type: application/x-www-form-urlencodedyAuthorization: Basic <base64(clientid:clientsecret)>. - Autorizaciones (authorities). Con client credentials, el token solo lleva los scopes concedidos a esa instancia de servicio. Si la API necesita un rol que la instancia no tiene, igualmente obtiene un token y la API igualmente dice que no. Corríjalo en los parámetros de la instancia (por ejemplo, los roles de una instancia del plan de API de Integration Suite), no en la solicitud.
- Audiencia. Si tiene un token y la API lo rechaza, decodifique el token y lea el claim
aud. Si no coincide con la API a la que llama, está usando una clave de la instancia de servicio equivocada.
Abre Integration Suite y aparece un banner rojo de «Internal Server Error». Sin ningún registro. Recarga, cambia de navegador y el resultado es el mismo.
Suele ocurrir después de dejar el servicio sin usar durante un tiempo: se abre por la mañana, se deja unas horas y se vuelve a usar más tarde. Los hilos de la comunidad de SAP y la base de conocimiento apuntan a dos causas habituales: colecciones de roles que faltan y sesiones obsoletas.
Lo que suele resolverlo:
- Revise las colecciones de roles. Su usuario necesita
Integration_Provisionerpara configurar el tenant y las colecciones de rolesPI_correspondientes (administrador, desarrollador de integración, experto de negocio) para trabajar en él. Asígnelas en la subcuenta, en Seguridad. - Cierre sesión por completo. Los cambios de rol solo llegan a su sesión después de iniciar sesión de nuevo. Cierre todas las pestañas de BTP e Integration Suite, cierre sesión y vuelva a entrar.
- Borre las cookies de los dominios de BTP si el error persiste tras un nuevo inicio de sesión. Una cookie de sesión obsoleta puede sobrevivir a la sesión.
- Use una sola sesión de Cockpit. Varias pestañas o perfiles de navegador sobre la misma subcuenta provocan conflictos de sesión que se ven exactamente como este error.
El problema real es la visibilidad. El Cockpit no le dice nada sobre lo que falló, así que acaba adivinando. Recorra la lista por orden. Para una visión más amplia de por qué se atascan los programas de integración, vea mi artículo sobre los retrasos en la entrega de SAP Integration Suite.
Hace clic en «Go to Application» y obtiene una pantalla en blanco, una página de inicio genérica o una redirección sin sentido.
Sigue patrones:
- Los enlaces de los boosters se rompen cuando la configuración de la subcuenta cambia después de ejecutar el booster. La redirección apunta a un sitio que ya no existe.
- Los mosaicos de Integration Suite a veces funcionan, a veces dan error y a veces caducan, normalmente por los motivos de sesión de arriba.
- Los enlaces de SAP Build Work Zone muestran «connection denied» cuando la suscripción existe pero su usuario no tiene la colección de roles del sitio.
- Varias pestañas o perfiles de navegador abren enlaces en contextos caducados.
Lo que funciona: navegue por el árbol del Cockpit (subcuenta, luego Services, luego Instances and Subscriptions) y guarde como marcadores las URL directas de Integration Suite, los destinos y Work Zone. Use una sola sesión en un perfil de navegador limpio. Cuando un enlace falla una de cada tres veces, se deja de confiar en la plataforma y se empiezan a construir soluciones alternativas. Los marcadores son la solución alternativa más barata que hay. Si todavía está aprendiendo a orientarse, mi recorrido por el BTP Cockpit cubre la navegación básica.
Despliega una app CAP, configura un destino en el Cockpit y las solicitudes siguen fallando con «destination not found» o errores de autenticación. El destino aparece en la lista. La app está en ejecución. Los mensajes de error no apuntan a nada útil.
La documentación de CAP de SAP es clara sobre cómo debe conectarse esto: el servicio remoto se declara en cds.requires dentro de package.json (o .cdsrc.json) con un kind, y el nombre del destino va en credentials.destination. La app también necesita bindings tanto al servicio Destination como a XSUAA. La mayoría de los fallos son una rotura en algún punto de esa cadena.
- cds.requiresDeclara el servicio remoto, su kind y el nombre del destino
- Perfil de producciónContiene las credenciales del destino tras el despliegue
- Bindings de servicioLa app está enlazada a Destination y XSUAA
- Destino en el CockpitEl mismo nombre que en cds.requires y xs-app.json, con mayúsculas y minúsculas
- Servicio remotoodata-v2 para un servicio V2, odata para V4
Las solicitudes llegan al servicio remoto
| Síntoma | Solución |
|---|---|
| El destino aparece en la lista pero la app no lo encuentra | Compare el nombre en cds.requires y en las rutas de xs-app.json con el del Cockpit, carácter por carácter, incluidas mayúsculas y minúsculas |
| Funciona en local y falla tras el despliegue | Compruebe que el perfil [production] contiene de verdad las credenciales del destino y que la app está enlazada a Destination y XSUAA |
| Un servicio OData V2 remoto devuelve errores | Configure kind como odata-v2 para un servicio V2 y odata para V4. Use V4 siempre que ambas partes lo permitan |
| Una app UI5 necesita V2 pero su servicio CAP es V4 | Añada el plugin @cap-js-community/odata-v2-adapter. El antiguo @sap/cds-odata-v2-adapter-proxy está obsoleto |
| La autenticación falla con credenciales válidas | Empiece con OAuth2ClientCredentials o BasicAuthentication. Use SAML o la propagación de principal solo cuando el escenario lo requiera |
| No está seguro de que el destino sea accesible | Use «Check Connection» en el destino del Cockpit antes de depurar la app |
Los equipos que lo gestionan bien mantienen una lista de comprobación breve de destinos por cada app. No porque la configuración sea compleja. Sino porque una suposición equivocada sobre el nombre, el binding o el tipo de OData falla en silencio y lleva mucho más tiempo encontrarla que evitarla.
SAP BTP Cockpit da muy poca información cuando algo falla. Casi toda la depuración se hace por ensayo y error. Conocer los patrones ahorra horas.
Una app CAP que ayer funcionaba ahora se cuelga. Sin ningún error. El Cockpit la muestra en ejecución. La reinicia. Nada.
Revise primero la base de datos. El propio tutorial de SAP sobre HANA Cloud trial indica que las instancias de free tier se detienen cada noche y hay que reiniciarlas cada día que se trabaja. La propia cuenta trial dura hasta 90 días si inicia sesión con regularidad. Su app está bien. Su base de datos está dormida.
Qué ayuda:
- Reinicie la instancia de HANA Cloud desde SAP HANA Cloud Central antes de empezar a depurar código.
- Use la CLI (
cf apps,cf services) para ver el uso de memoria y de servicios. La interfaz del Cockpit muestra mucho menos. - Elimine las instancias de servicio sin uso antes de crear otras nuevas. Las cuotas de trial se aplican a toda la cuenta, no a una sola app.
- Mantenga las cargas de demo y de prueba en subcuentas separadas.
Si necesita más de una app y base de datos funcionando de forma fiable, o una disponibilidad estable para demos, pase a una cuenta productiva. Los planes de free tier en una cuenta productiva pueden pasar a ser de pago sin perder su trabajo, algo que una cuenta trial no permite.
¿Por qué recibo un error 401 con credenciales de service key de SAP BTP aunque parezcan correctas?
Casi siempre se debe a la solicitud OAuth, no a las credenciales. Las causas habituales son un tipo de concesión incorrecto (use client_credentials para el acceso técnico), una URL de token que no coincide con la service key o cabeceras incorrectas en la llamada del token.
Si obtiene un token y la API aun así lo rechaza, decodifíquelo. Compruebe que el claim aud coincide con la API y revise los scopes. Con client credentials, los scopes provienen de las autorizaciones concedidas a la instancia de servicio, así que corrija los roles que faltan en los parámetros de la instancia.
¿Qué causa los Internal Server Error al abrir Integration Suite en BTP Cockpit?
Lo más habitual es que falten colecciones de roles o que haya una sesión obsoleta. Asegúrese de que su usuario tiene Integration_Provisioner y las colecciones de roles PI_ que necesita. Después cierre todas las pestañas de BTP, cierre sesión y vuelva a entrar, porque los roles nuevos solo se aplican tras un nuevo inicio de sesión.
Si persiste, borre las cookies de los dominios de BTP y mantenga una sola sesión de Cockpit. Varias pestañas sobre la misma subcuenta provocan el mismo error.
¿Por qué mi app CAP no consigue conectar con un destino que aparece correctamente en el Cockpit?
Normalmente es un nombre que no coincide. El nombre del destino en cds.requires y en las rutas de su xs-app.json debe coincidir exactamente con el del Cockpit, incluidas mayúsculas y minúsculas.
Si el nombre es correcto, compruebe que la app está enlazada tanto al servicio Destination como a XSUAA, que el perfil [production] lleva las credenciales y que el kind coincide con el servicio remoto: odata-v2 para V2, odata para V4. Use «Check Connection» en el Cockpit para confirmar que el destino es accesible.
¿Por qué mi app de SAP BTP trial deja de funcionar durante la noche?
En los planes trial y free tier, las instancias de SAP HANA Cloud se detienen cada noche para ahorrar recursos. Su app sigue en ejecución pero no puede llegar a su base de datos. Reinicie la instancia en SAP HANA Cloud Central cada día antes de trabajar.
Use cf apps y cf services para revisar el uso de memoria y de servicios, porque las cuotas de trial son difíciles de ver en el Cockpit. Elimine las instancias sin uso antes de crear otras nuevas.
¿Por qué los enlaces dentro de boosters y mosaicos llevan a páginas en blanco?
Los enlaces de los boosters se rompen cuando la estructura de la subcuenta cambia después de ejecutar el booster. La redirección apunta a una ubicación que ya no existe o que nunca se configuró del todo.
Navegue por el árbol del Cockpit y guarde como marcadores las URL directas de Integration Suite, los destinos y SAP Build Work Zone. No dependa de la navegación generada por el booster para nada que use a diario.
¿Cuándo debería pasar de una cuenta trial de BTP a un plan de pago?
Cuando los límites empiezan a costarle tiempo. Si ejecuta más de una app o base de datos, o necesita una disponibilidad estable para demos o pruebas, la cuenta trial causa más fricción de la que ahorra.
Las ventajas principales son la estabilidad y una visibilidad más clara de los recursos, no funciones nuevas. Una cuenta productiva con planes de free tier es un buen paso intermedio: más adelante puede pasar esos planes a de pago sin reconstruir nada.
Siguiente paso
¿Dirige ahora mismo un programa ERP?
Si este artículo toca un programa en el que está inmerso ahora mismo, una conversación de 30 minutos suele avanzar más que otra semana de análisis interno.




