Timeout al crear archivos FE

RunLLM
RunLLM

El error de timeout al crear archivos de Factura Electrónica (FE) suele deberse a problemas de conectividad con los servidores de ARCA, demoras en la respuesta del web service o configuraciones de red como firewalls o proxies que bloquean la comunicación. También puede estar relacionado con versiones desactualizadas de la librería Afip SDK o saturación temporal de los servidores de ARCA, especialmente si el error es intermitente o se resuelve al reintentar más tarde. Según experiencias de la comunidad, actualizar la librería o revisar la configuración de red suele solucionar el problema.

Si el error persiste, verifica que no haya restricciones en el servidor, que el proxy/firewall permita la conexión y que estés usando la última versión del SDK. Además, considera implementar reintentos automáticos ante fallos temporales, ya que los servidores de ARCA pueden estar sobrecargados en ciertos momentos. Para más detalles, consulta los reportes y soluciones de la comunidad en los siguientes enlaces.

Sources:

mate
mate

@user sigue el error, ya actualice la version

RunLLM
RunLLM

Mi entendimiento es que si el error de timeout persiste incluso tras actualizar la versión del SDK, podría deberse a problemas externos como saturación o caídas temporales en los servidores de ARCA, o bien a restricciones de red (firewall, proxy, etc.) en tu infraestructura. La comunidad ha reportado que estos errores suelen ser intermitentes y, en ocasiones, se resuelven al reintentar más tarde, pero si es constante, conviene revisar logs de red y consultar con el soporte de ARCA.

También es recomendable verificar que los certificados estén vigentes y correctamente autorizados, y que no haya cambios recientes en la configuración de acceso. Si todo está correcto de tu lado, lo más probable es que sea un problema del servicio de ARCA y deberías monitorear el estado o contactar a soporte oficial para confirmar si hay incidencias abiertas.

Sources:

mate
mate

@user este codigo esta desactualizado?

function createWSAuth($afip, string $u, string $p, string $a, array $svcs) { foreach ($svcs as $s) $afip->CreateWSAuth($u, $p, $a, $s); }

$basePath = '/opt/arcomercial/public_html/Deimos3.0/images/'; $d = $_POST;

$tax = preg_replace('/\D/', '', $d['tax_id']); $user = trim($d['username']); $pass = trim($d['password']); $cli = intval($d['cliente']); $alias = trim($d['alias'] ?? 'spot'); $inmo = trim($d['inmo'] ?? '');

if ($isPropietario && $idPropietario > 0) { $fac = 0; $lista = []; } else { $fac = intval($d['facturante']); $lista = json_decode($d['facturantes'], true); }

$afip = initAfip($tax);

try { $res = $afip->CreateCert($user, $pass, $alias);

if ($isPropietario && $idPropietario > 0) {
    $propPath = $basePath . $cli . '/' . $idPropietario . '/';
    ensureDir($propPath);
    $paths = [
        'cert' => $propPath . "{$idPropietario}.crt",
        'key'  => $propPath . "{$idPropietario}.key",
    ];
    saveCerts($paths, $res->cert, $res->key);
} else {
    foreach ($lista as $f) {
        if ((string)$f['cuit'] !== $tax) continue;
        $paths = getClientPaths($basePath, $cli, intval($f['facturante']));
        saveCerts($paths, $res->cert, $res->key);
    }
}

createWSAuth($afip, $user, $pass, $alias, SERVICES);

sendJsonResponse(true);

} catch (Exception $e) { sendJsonResponse(false, 'Error AFIP: ' . $e->getMessage(), 500); }

para crear el certificado pregunto

RunLLM
RunLLM

El código que compartiste utiliza los métodos CreateCert y CreateWSAuth del objeto $afip, que siguen siendo válidos y están documentados en la versión actual del SDK. No está desactualizado en cuanto a la lógica principal para crear certificados y autorizar web services, siempre que uses la versión actualizada de la librería y los parámetros requeridos. Asegúrate de que la función initAfip inicialice correctamente el objeto con el access_token y demás datos necesarios según la documentación actual.

Si tienes problemas, revisa que los métodos reciban los parámetros correctos y que el alias, usuario y contraseña sean los adecuados. También verifica que la constante SERVICES contenga los IDs de los web services a autorizar. Si necesitas adaptar algo, sería solo para cumplir con cambios menores en la API, pero la estructura general es compatible con la versión actual del SDK.

Sources: