Error de Comunicación con Kolla al habilitar relevamiento

Estimados, estamos teniendo un problema para habilitar dos encuestas que son de dos facultades distintas. Cuando intentan habilitar aparece un error diciendo “Error de Comunicación con Kolla” En el log de guaraní aparece lo siguiente:

[INFO][guarani] Formularios procesados: 125 /125 - Items procesados 125/125
[DEBUG][guarani] INSTALACION "/usr/local/proyectos/guarani/instalacion"
[DEBUG][guarani] Parametros instancia desarrollo: array (
  'base' => 'guarani3_produccion',
  'proyectos' => 'toba_referencia, toba_usuarios, guarani',
  'tipo' => 'normal',
  'toba_referencia' => 
  array (
    'path' => '/usr/local/proyectos/guarani/vendor/siu-toba/framework/proyectos/toba_referencia',
    'url' => '/toba_referencia/2.7',
  ),
  'toba_usuarios' => 
  array (
    'path' => '/usr/local/proyectos/guarani/vendor/siu-toba/framework/proyectos/toba_usuarios',
    'url' => '/toba_usuarios/2.7',
  ),
  'guarani' => 
  array (
    'path' => '/usr/local/proyectos/guarani',
    'url' => '/guarani/3.11',
    'url_pers' => '/guarani_pers/3.11',
    'usar_perfiles_propios' => '1',
    'metadatos_compilados' => '1',
  ),
)
[DEBUG][guarani] INSTANCIA "desarrollo"
[DEBUG][guarani] Conectando a base 'guarani3_produccion'
[DEBUG][guarani] PROYECTO "guarani"
[DEBUG][guarani] Invocando servicio kolla. Opciones:<br>array (
  'to' => 'http://kolla.guarani.unse.edu.ar/siu2/kolla/rest/v1/',
  'auth_tipo' => 'digest',
  'auth_usuario' => 'ue_jhghgf876565',
  'auth_password' => 'jkhsgdufygtsd76r',
)
[ERROR][guarani] Error en crear_habilitacion. Se esperaba 201 y se obtuvo 200
[DEBUG][guarani] array (
  0 => 
  array (
    'habilitacion' => 122,
    'fecha_desde' => '2023-12-11',
    'fecha_hasta' => '2024-12-30',
    'paginado' => 'N',
    'anonima' => 'S',
    'publica' => 'N',
    'estilo' => 0,
    'password' => '0798ac7341eba86d436a40f5b9855262',
    'descripcion' => 'Encuesta de satisfacci�n estudiantil',
    'texto_preliminar' => '',
    'generar_codigo_recuperacion' => 'S',
    'url_imagenes_base' => '',
    'unidad_gestion' => 'FAYA',
    'descarga_pdf' => 'S',
  ),
)
[DEBUG][toba] Mensaje a usuario: Error en la comunicaci�n con Kolla
[DEBUG][toba] [SECCION] Configurando dependencias para responder al servicio...
[DEBUG][toba] componente(32000143): Pantalla de servicio: ''
[INFO][toba] componente(32000143): [ callback ] 'conf__seleccion' no fue atrapado
[DEBUG][toba] componente(32000143): [ callback ] 'conf__filtro'
[DEBUG][toba] componente(32000143): [ callback ] 'conf__cuadro'

En fin, dentro de kolla solo se conecta bien pero aparece lo siguiente:

[11274849][kolla][DEBUG] Iniciando el pedido
[11274849][kolla][DEBUG] Procesando URL '/habilitaciones'
[11274849][kolla][DEBUG] Iniciando Autenticacion
[11274849][kolla][DEBUG] Pedido capturado por el firewall
[11274849][kolla][INFO] Excepcion de Autenticacion. Autenticar y reintentar
[11274849][kolla][INFO] SIUToba\rest\http\respuesta_rest::__set_state(array(
   'status' => 401,
   'headers' => 
  array (
    'Content-Type' => 'text/html',
    'API-Version' => 'v1.0',
    'WWW-Authenticate' => 'Digest realm="Area Restringida",qop="auth",nonce="668e8f3e99e7c",opaque="c873991d21ba181ace4cee0905eee3d6"',
  ),
   'data' => 
  array (
    'mensaje' => 'autenticaci�n cancelada',
  ),
   'encoding' => 'latin1',
   'api_version' => 'v1.0',
))
[11274849][kolla][INFO] Se require autenticaci�n
[11274849][kolla][DEBUG] Pedido finalizado
[11274850][kolla][DEBUG] Iniciando el pedido
[11274850][kolla][DEBUG] Procesando URL '/habilitaciones'
[11274850][kolla][DEBUG] Iniciando Autenticacion
[11274850][kolla][DEBUG] Pedido capturado por el firewall
[11274850][kolla][DEBUG] Usuario 'ue_jhghgf876565' autenticado y autorizado
[11274850][kolla][DEBUG] Controlador encontrado /opt/kolla483/php/rest/v1/habilitaciones/recurso_habilitaciones.php :: get_list ()
[11274850][kolla][DEBUG] Pedido finalizado

La verdad que todo funciona bien, pero no se pueden habilitar encuestas nuevas, las encuestas que ya están habilitadas están siendo contestadas por los alumnos.

Saludos!

Ir a la issue

Hola @ricardopellicer

Parece ser que la URL a Kolla es con https, me redirige a https://kolla.guarani.unse.edu.ar/siu2/kolla/.

Por favor quita 'auth_password' es caso de ser la password y no un comodín, sino cualquiera podrá acceder a la API.

Proba haciendo un curl desde el servidor de Guaraní para ver si llega a la API de Kolla:

curl -k -v --digest -u 'ue_jhghgf876565:xxxxxxx' 'https://kolla.guarani.unse.edu.ar/siu2/kolla/rest/v1/info'

Saludos.

Hola Leo, como estás? No te preocupes por el auth_password, que intenten ingresar no van a poder, el usuario y la clave que pase están inventadas! jajajaja

Te paso la salida:

*   Trying Y.Y.Y.Y...
* TCP_NODELAY set
* Connected to kolla.guarani.unse.edu.ar (Y.Y.Y.Y) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: CN=kolla.guarani.unse.edu.ar
*  start date: Jul  5 09:41:04 2024 GMT
*  expire date: Oct  3 09:41:03 2024 GMT
*  issuer: C=US; O=Let's Encrypt; CN=R10
*  SSL certificate verify ok.
* Server auth using Digest with user 'ue_sdkvhgsd'
> GET /siu2/kolla/rest/v1/info HTTP/1.1
> Host: kolla.guarani.unse.edu.ar
> User-Agent: curl/7.64.0
> Accept: */*
> 
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/1.1 401 Unauthorized
< Date: Wed, 10 Jul 2024 22:02:16 GMT
< Server: Apache
< API-Version: v1.0
< WWW-Authenticate: Digest realm="Area Restringida",qop="auth",nonce="66sdfgfg881",opaque="c873991d21ba181ace4cee0905eee3d6"
< Content-Length: 49
< Content-Type: application/json
< 
* Ignoring the response-body
* Connection #0 to host kolla.guarani.unse.edu.ar left intact
* Issue another request to this URL: 'https://kolla.guarani.unse.edu.ar/siu2/kolla/rest/v1/info'
* Found bundle for host kolla.guarani.unse.edu.ar: 0x56293d27d140 [can pipeline]
* Could pipeline, but not asked to!
* Re-using existing connection! (#0) with host kolla.guarani.unse.edu.ar
* Connected to kolla.guarani.unse.edu.ar (x.x.x.x.x) port 443 (#0)
* Server auth using Digest with user 'ue_sdgfsduhg'
> GET /siu2/kolla/rest/v1/info HTTP/1.1
> Host: kolla.guarani.unse.edu.ar
> Authorization: Digest username="ue_guarani", realm="Area Restringida", nonce="668f04e84a881", uri="/siu2/kolla/rest/v1/info", cnonce="YzJHHHH6HH4HH4FK8GHFSE5MWY=", nc=00000001, qop=auth, response="d1844fdf6g54d5g4efg874re9e342ce", opaque="c873991d21dr5gf47d8f7g05eee3d6"
> User-Agent: curl/7.64.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Wed, 10 Jul 2024 22:02:16 GMT
< Server: Apache
< API-Version: v1.0
< Content-Length: 156
< Content-Type: application/json
< 
[
    {
        "nombre": "SIU-Kolla",
        "version": "4.8.3",
        "api_version": "v1.0",
        "api_major": "1",
        "api_minor": "0"
    }
* Connection #0 to host kolla.guarani.unse.edu.ar left intact

Al parecer no está autorizado, pero como puede ser que todo lo demás funcione?

Saludos cordiales y muchas gracias!

Hola @ricardopellicer

[ERROR][guarani] Error en crear_habilitacion. Se esperaba 201 y se obtuvo 200

Acá hay algo extraño, crear_habilitacion de php/nucleo/encuestas/encuesta_nucleo.php llama a POST /habilitaciones y devuelve 201 en caso de éxito, parece que se llama a GET /habilitaciones/{id_habilitacion} que devuelve 200, ¿tenes personalizado eso?

Veo que GET /info responde bien, ¿sera un tema de certificados SSL? Proba sin la opción -k de curl:

curl -v --digest -u 'ue_jhghgf876565:xxxxxxx' 'https://kolla.guarani.unse.edu.ar/siu2/kolla/rest/v1/info'

Saludos.

Leo, ya esta solucionado, el problema era el certificado. Muchas gracias por todo!

Saludos cordiales!

Estoy teniendo el mismo inconveniente, que seria lo del certificado?

Al ejecutar desde el servidor de Gestion el curl que indicaron me devuelve esto:

 curl -v --digest -u 'xxxx:xxxxx' 
 https://kollapre.unla.edu.ar/kolla/rest/v1/info'

*   Trying 10.3.1.19:443...
* Connected to kollapre.unla.edu.ar (10.3.1.19) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: CN=kollapre.unla.edu.ar
*  start date: Jul 18 18:22:13 2025 GMT
*  expire date: Oct 16 18:22:12 2025 GMT
*  subjectAltName: host "kollapre.unla.edu.ar" matched cert's "kollapre.unla.edu.ar"
*  issuer: C=US; O=Let's Encrypt; CN=E6
*  SSL certificate verify ok.
* Server auth using Digest with user 'ue_guarani'
> GET /kolla/rest/v1/info HTTP/1.1
> Host: kollapre.unla.edu.ar
> User-Agent: curl/7.74.0
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Mark bundle as not supporting multiuse
< HTTP/1.1 401 Unauthorized
< Server: nginx/1.14.2
< Date: Tue, 29 Jul 2025 16:32:42 GMT
< Content-Type: application/json
< Content-Length: 49
< Connection: keep-alive
< API-Version: v1.1
< WWW-Authenticate: Basic realm="Usuario de la API"
<
{
    "mensaje": "autenticaci\ufffdn cancelada"
* Connection #0 to host kollapre.unla.edu.ar left intact

Hola @rmansilla

No, el error de los certificados suele decir algo así:

cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

Usando la opción -k o –insecure dejaría de dar dicho error:

curl -k -v --digest -u 'xxxx:xxxxx' https://kollapre.unla.edu.ar/kolla/rest/v1/info'

autenticación cancelada lo suele dar cuando esta mal el usuario o el password.

¿usa –digest o –basic?

Ademas esta caído el sitio por lo que veo al ingresar a https://kollapre.unla.edu.ar/kolla/rest/v1/info

EN MANTENIMIENTO

Este sitio se encuentra momentaneamente en mantenimiento

Disculpe las molestias ocasionadas

Ante cualquier duda comuníquese con nosotros a produccion@unla.edu.ar

Saludos.

No me di cuenta y nosotros usamos basic, cambie eso y y le agregue un /v1 mas (nose porque quedo asi configurado)

 Trying 10.3.1.19:443...
* Connected to kollapre.unla.edu.ar (10.3.1.19) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: CN=kollapre.unla.edu.ar
*  start date: Jul 18 18:22:13 2025 GMT
*  expire date: Oct 16 18:22:12 2025 GMT
*  subjectAltName: host "kollapre.unla.edu.ar" matched cert's "kollapre.unla.edu.ar"
*  issuer: C=US; O=Let's Encrypt; CN=E6
*  SSL certificate verify ok.
* Server auth using Basic with user 'ue_guarani'
> GET /kolla/rest/v1/v1/info HTTP/1.1
> Host: kollapre.unla.edu.ar
> Authorization: Basic dWVfZ3VhcmFuaTp1ZV9ndWFyYW5pMTIz
> User-Agent: curl/7.74.0
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: nginx/1.14.2
< Date: Tue, 29 Jul 2025 17:40:54 GMT
< Content-Type: application/json
< Content-Length: 156
< Connection: keep-alive
< API-Version: v1.1
<
[
    {
        "nombre": "SIU-Kolla",
        "version": "4.9.1",
        "api_version": "v1.1",
        "api_major": "1",
        "api_minor": "1"
    }
* Connection #0 to host kollapre.unla.edu.ar left intact

El cliente.ini de guarani esta configurado con dos v1:

https://kollapre.unla.edu.ar/kolla/rest/v1/v1/

Y de hecho trae las encuentas para vincular los Cuestionarios, pero el error aparece cuando se quiere habilitar el relevamiento.

@rmansilla Revisa bien Conexión con otros módulos

Revise nuevamente el documento y no veo que falte nada.

De todas formas, entiendo que por el error si se conecta pero por algun motivo no puede crear la habilitación.

Log de guarani:

-o-o-o-o-o-
Fecha: 29-07-2025 16:28:23
Operacion: Definir Relevamientos
Usuario: toba
Version-PHP: 7.4.33
Servidor: demo.siu.unla.edu.ar
URI: /guarani/3.21/aplicacion.php?ah=st688920d2585239.13164259&ai=guarani%7C%7C32000034
Referrer: http://demo.siu.unla.edu.ar/guarani/3.21/aplicacion.php?ah=st68890c6593e354.01220370&ai=guarani%7C%7C5000122
Host: 10.6.11.90
==========
[ERROR][guarani] Error en crear_habilitacion. Se esperaba 201 y se obtuvo 200

Log de Kolla:

[2025-07-29 04:28:23][2675][kolla][DEBUG] Iniciando el pedido
[2025-07-29 04:28:23][2675][kolla][DEBUG] Procesando URL '/v1/habilitaciones'
[2025-07-29 04:28:23][2675][kolla][DEBUG] Iniciando Autenticacion
[2025-07-29 04:28:23][2675][kolla][DEBUG] Pedido capturado por el firewall
[2025-07-29 04:28:23][2675][kolla][DEBUG] Usuario 'ue_guarani' autenticado y autorizado
[2025-07-29 04:28:23][2675][kolla][DEBUG] Controlador encontrado /var/siu/kolla_491/php/rest/v1/habilitaciones/recurso_habilitaciones.php :: get_list ()
[2025-07-29 04:28:23][2675][kolla][DEBUG] Pedido finalizado

@rmansilla

[ERROR][guarani] Error en crear_habilitacion. Se esperaba 201 y se obtuvo 200

Ese error lo da Guaraní en la función crear_habilitacion de php/nucleo/encuestas/encuesta_nucleo.php, al llamar a POST /habilitaciones de Kolla debería devolver status code 201 pero devuelve 200.

Si ves en https://documentacion.siu.edu.ar/apis/?spec=kolla_v1 vas a ver que debería devolver 201.

Te dejo otro foro con el mismo error: Problema habilitación relevamiento: "Error en la comunicación con Kolla"

Acabo de detectar que en kolla hay una unidad de gestión ademas de la generica. Y si bien en Guarani esta configurado para no usar unidades de gestión… esto podra generar algun error?

Hola @rmansilla

Revisa la configuración de Interfaz SIU-Guaraní - SIU-Kolla.

Igual lo que me hace ruido es que POST /habilitaciones devuelva status code 200 en lugar de 201.

Saludos.

@rmansilla Nos podrías pasar los logs (sistema.log y de rest) completos de Guaraní y Kolla al momento del error.

¿ustedes personalizaron php/nucleo/encuestas/encuesta_nucleo.php función crear_habilitacion para que haga un GET en lugar de un POST?

Los logs son los que te mande, que otro seria?

Kolla → logs/web_services

[2025-07-30 10:14:32][2735][kolla][DEBUG] Iniciando el pedido
[2025-07-30 10:14:32][2735][kolla][DEBUG] Procesando URL '/v1/habilitaciones'
[2025-07-30 10:14:32][2735][kolla][DEBUG] Iniciando Autenticacion
[2025-07-30 10:14:32][2735][kolla][DEBUG] Pedido capturado por el firewall
[2025-07-30 10:14:32][2735][kolla][DEBUG] Usuario 'ue_guarani' autenticado y autorizado
[2025-07-30 10:14:32][2735][kolla][DEBUG] Controlador encontrado /var/siu/kolla_491/php/rest/v1/habilitaciones/recurso_habilitaciones.php :: get_list ()
[2025-07-30 10:14:32][2735][kolla][DEBUG] Pedido finalizado

Kolla → logs/sistema ( no hay nada )

Guarani → logs/sistema


-o-o-o-o-o-
Fecha: 30-07-2025 10:14:33
Operacion: Definir Relevamientos
Usuario: toba
Version-PHP: 7.4.33
Servidor: demo.siu.unla.edu.ar
URI: /guarani/3.21/aplicacion.php?ah=st688a1aacd46430.17972682&ai=guarani%7C%7C32000034
Referrer: http://demo.siu.unla.edu.ar/guarani/3.21/aplicacion.php?tm=1&tcm=central&ai=guarani||32000034
Host: 10.6.11.90
==========
[ERROR][guarani] Error en crear_habilitacion. Se esperaba 201 y se obtuvo 200

Algun otro? te estoy pasando completo lo del momento del error.

Y no, no personalizamos el metodo.

@rmansilla ¿ese error te lo da al querer sincronizar en la operación » Encuestas » Definir Relevamientos, no?

Para que los logs den mas información en el archivo www/aplicacion.php cambia a define("apex_pa_log_archivo_nivel", 7);.

[2025-07-30 10:14:32][2735][kolla][DEBUG] Controlador encontrado /var/siu/kolla_491/php/rest/v1/habilitaciones/recurso_habilitaciones.php :: get_list ()

Lo raro es que en Kolla llega como un GET en lugar de un POST, ¿tienen alguna dirección que este haciendo el servidor (Apache o nginx) que haga que ese POST se convierta en GET?

Saludos.

Si, da el error al querer habilitar el relevammiento.

Te paso el log extendido de guarani:

[ERROR][guarani] Error en crear_habilitacion. Se esperaba 201 y se obtuvo 200
[DEBUG][guarani] array (
)
[DEBUG][toba] Mensaje a usuario: Error en la comunicaci▒n con Kolla
[DEBUG][toba] [SECCION] Configurando dependencias para responder al servicio...
[DEBUG][toba] componente(32000143): Pantalla de servicio: ''
[INFO][toba] componente(32000143): [ callback ] 'conf__seleccion' no fue atrapado
[DEBUG][toba] componente(32000143): [ callback ] 'conf__filtro'
[DEBUG][toba] Se filtro el evento: cancelar
[DEBUG][toba] componente(32000143): [ callback ] 'conf__cuadro'
[DEBUG][guarani] SQL sin perfil de datos: SELECT        mdp_personas_perfil_datos.usuario_perfil_datos
                                FROM    mdp_personas,
                                                mdp_personas_perfil_datos
                                WHERE   mdp_personas.persona = mdp_personas_perfil_datos.persona AND
                                                mdp_personas.usuario = 'toba' AND
                                                mdp_personas_perfil_datos.usuario_grupo_acc = 'admin'

[DEBUG][guarani] SQL con perfil de datos: SELECT        gde_encuestado.encuestado as valor,
                                                gde_encuestado.nombre as descr
                                FROM    gde_encuestado

[DEBUG][guarani] SQL sin perfil de datos: SELECT        mdp_personas_perfil_datos.usuario_perfil_datos
                                FROM    mdp_personas,
                                                mdp_personas_perfil_datos
                                WHERE   mdp_personas.persona = mdp_personas_perfil_datos.persona AND
                                                mdp_personas.usuario = 'toba' AND
                                                mdp_personas_perfil_datos.usuario_grupo_acc = 'admin'

[DEBUG][guarani] SQL con perfil de datos: SELECT                gde_grupos.habilitacion,
                                                        gde_habilitaciones.kolla_id_habilitacion,
                                                        gde_habilitaciones.kolla_sincronizado,
                                                        gde_habilitaciones.titulo,
                                                        gde_habilitaciones.descripcion,
                                                        gde_habilitaciones.fecha_desde,
                                                        gde_habilitaciones.fecha_hasta,
                                                        to_char(gde_habilitaciones.fecha_desde, 'DD/MM/YYYY') || ' al ' || to_char(gde_habilitaciones.fecha_hasta, 'DD/MM/YYYY') as validez,
                                                        gde_tipos.nombre as habilitacion_tipo,
                                                         CASE WHEN gde_habilitaciones.tipo_relevamiento = 'B' THEN 'Becas' WHEN gde_habilitaciones.tipo_relevamiento = 'E' THEN 'Encuestas' END as tipo_relevamiento_descr,
                                                         CASE WHEN gde_habilitaciones.encuestado = 'A' THEN 'Alumnos' WHEN gde_habilitaciones.encuestado = 'D' THEN 'Docentes' WHEN gde_habilitaciones.encuestado = 'X' THEN 'Alumnos y Docentes' END as encuestado_nombre,
                                                        get_encuestas_habilitacion(gde_grupos.habilitacion) as encuestas,
                                                        (SELECT COUNT(DISTINCT gde_encuestas_pendientes.respuesta)
                                                                FROM gde_formularios
                                                                JOIN gde_encuestas_pendientes ON gde_encuestas_pendientes.formulario = gde_formularios.formulario
                                                                WHERE gde_formularios.habilitacion = gde_grupos.habilitacion
                                                                  AND gde_formularios.estado = 'A'
                                                        ) as cantidad_encuestados,
                                                        (SELECT COUNT(DISTINCT gde_encuestas_pendientes.respuesta)
                                                                FROM gde_formularios
                                                                JOIN gde_encuestas_pendientes ON gde_encuestas_pendientes.formulario = gde_formularios.formulario
                                                                WHERE gde_formularios.habilitacion = gde_grupos.habilitacion
                                                                  AND gde_formularios.estado = 'A'
                                                                  AND gde_encuestas_pendientes.fecha_respuesta IS NOT NULL
                                                        ) as cantidad_contestadas
                                FROM            gde_grupos
                                                        JOIN gde_habilitaciones ON gde_grupos.habilitacion = gde_habilitaciones.habilitacion
                                                        JOIN gde_tipos ON gde_habilitaciones.tipo = gde_tipos.tipo

                                GROUP BY        gde_grupos.habilitacion,
                                                        gde_habilitaciones.kolla_id_habilitacion,
                                                        gde_habilitaciones.kolla_sincronizado,
                                                        gde_habilitaciones.titulo,
                                                        gde_habilitaciones.descripcion,
                                                        gde_habilitaciones.tipo_relevamiento,
                                                        gde_habilitaciones.encuestado,
                                                        gde_habilitaciones.fecha_desde,
                                                        gde_habilitaciones.fecha_hasta,
                                                        gde_tipos.nombre
                                ORDER BY        gde_habilitaciones.titulo

[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[INFO][guarani] PUNTO MONTAJE: se carg▒ la clase extension_toba/componentes/guarani_pers_datos_tabla.php del punto de montaje personalizacion. El path del mismo es /var/siu/proyectos/guarani/personalizacion/php
[DEBUG][toba] [SECCION] Respondiendo al servicio__generar_html...
[DEBUG][guarani] SQL sin perfil de datos: SELECT        mdp_personas_perfil_datos.usuario_perfil_datos
                                FROM    mdp_personas,
                                                mdp_personas_perfil_datos
                                WHERE   mdp_personas.persona = mdp_personas_perfil_datos.persona AND
                                                mdp_personas.usuario = 'toba' AND
                                                mdp_personas_perfil_datos.usuario_grupo_acc = 'admin'

[DEBUG][guarani] SQL con perfil de datos: SELECT        parametro
                                FROM    par_parametros_etiquetas
                                WHERE   etiqueta = '800SIUENC003'
                                                AND es_operacion

[DEBUG][guarani] SQL sin perfil de datos: SELECT        mdp_personas_perfil_datos.usuario_perfil_datos
                                FROM    mdp_personas,
                                                mdp_personas_perfil_datos
                                WHERE   mdp_personas.persona = mdp_personas_perfil_datos.persona AND
                                                mdp_personas.usuario = 'toba' AND
                                                mdp_personas_perfil_datos.usuario_grupo_acc = 'admin'

[DEBUG][guarani] SQL con perfil de datos: SELECT
                                        par_parametros_sistema.parametro,
                                        par_parametros_sistema.descripcion,
                                        par_parametros_sistema.tipo_de_parametro,
                                        par_parametros_sistema.tipo_de_dato,
                                        par_parametros_sistema.nivel
                                FROM
                                        par_parametros_sistema,
                                        par_parametros_etiquetas
                                WHERE
                                        par_parametros_etiquetas.parametro = par_parametros_sistema.parametro
                                        AND par_parametros_etiquetas.es_operacion
                                        AND par_parametros_etiquetas.etiqueta = '800SIUENC003'
                                ORDER BY
                                        nivel,
                                        parametro

[INFO][guarani] [SQL resuelta por cach▒] SELECT
                                        par_parametros_sistema.parametro,
                                        par_parametros_sistema.descripcion,
                                        par_parametros_sistema.tipo_de_parametro,
                                        par_parametros_sistema.tipo_de_dato,
                                        par_parametros_sistema.nivel
                                FROM
                                        par_parametros_sistema,
                                        par_parametros_etiquetas
                                WHERE
                                        par_parametros_etiquetas.parametro = par_parametros_sistema.parametro
                                        AND par_parametros_etiquetas.es_operacion
                                        AND par_parametros_etiquetas.etiqueta = '800SIUENC003'
                                ORDER BY
                                        nivel,
                                        parametro

[DEBUG][guarani] SQL con perfil de datos: SELECT
                                        par_parametros_sistema.parametro,
                                        par_parametros_sistema.descripcion,
                                        par_parametros_sistema.tipo_de_parametro,
                                        par_parametros_sistema.tipo_de_dato,
                                        par_parametros_sistema.nivel,
                                        par_parametros_sistema.valor_desde,
                                        par_parametros_sistema.valor_hasta,
                                        par_parametros_sistema.valor_default,
                                        par_parametros_sistema.tabla_referenciada
                                FROM
                                        par_parametros_sistema
                                WHERE
                                        par_parametros_sistema.parametro = 'enc_utiliza_ug_kolla'

[NOTICE][guarani] Valor del par▒metro 'enc_utiliza_ug_kolla' = 'N' obtenido desde cach▒.
[DEBUG][guarani] SQL con perfil de datos: SELECT
                                                par_parametros_sistema_valores.descripcion as valor_default_desc
                                        FROM
                                                par_parametros_sistema_valores
                                        WHERE
                                                par_parametros_sistema_valores.parametro = 'enc_utiliza_ug_kolla'
                                                AND par_parametros_sistema_valores.valor = 'N'

[DEBUG][guarani] SQL sin perfil de datos: SELECT        mdp_personas_perfil_datos.usuario_perfil_datos
                                FROM    mdp_personas,
                                                mdp_personas_perfil_datos
                                WHERE   mdp_personas.persona = mdp_personas_perfil_datos.persona AND
                                                mdp_personas.usuario = 'toba' AND
                                                mdp_personas_perfil_datos.usuario_grupo_acc = 'admin'

[DEBUG][guarani] SQL con perfil de datos: SELECT                gde_tipos.tipo as valor,
                                                        gde_tipos.nombre as descr
                                FROM            gde_tipos
                                ORDER BY        gde_tipos.nombre
[DEBUG][guarani] SQL sin perfil de datos: SELECT        mdp_personas_perfil_datos.usuario_perfil_datos
                                FROM    mdp_personas,
                                                mdp_personas_perfil_datos
                                WHERE   mdp_personas.persona = mdp_personas_perfil_datos.persona AND
                                                mdp_personas.usuario = 'toba' AND
                                                mdp_personas_perfil_datos.usuario_grupo_acc = 'admin'

[DEBUG][guarani] SQL con perfil de datos: SELECT        gde_encuestado.encuestado as valor,
                                                gde_encuestado.nombre as descr
                                FROM    gde_encuestado

Gracias @rmansilla

Necesitaría los logs de Kolla para saber porque esta llegando como GET /habilitaciones en lugar de POST /habilitaciones.

Esto es lo unico que hay, en el de sistema nada.

Te referis a otro?

(disculpa la demora, tuvimos problemas de acceso al server por unos dias)

Gracias @rmansilla

Si, seria instalacion/i__desarrollo/p__kolla/logs/web_services.log.

[2025-07-30 10:14:32][2735][kolla][DEBUG] Controlador encontrado /var/siu/kolla_491/php/rest/v1/habilitaciones/recurso_habilitaciones.php :: get_list ()

Lo raro es que lo ataja el get_list() cuando lo debería atajar el post_list().

Les vamos a pedir logs de Apache de ambos sistemas.

Saludos.