L' error 0308010C ha esdevinvertit un clàssic per als qui migren els seus entorns de desenvolupament a Node.js 18 o versions superiors. Si el teu pipeline de CI/CD es trenca just després d'actualitzar el runtime de Lambda o l'entorn local, probablement t'has topat amb aquest missatge: Error: error:0308010C:digital envelope routines::unsupported. A simple vista sembla un problema críptic de criptografia, però en realitat és un senyal clar que les teves eines de build necessiten una actualització. En aquest article vam desgranar per què passa, com solucionar-ho de forma definitiva i quines lliçons podem extreure per mantenir els nostres projectes sans.
L'error sorgeix perquè Node.js 17 va canviar d'OpenSSL 1.1.1 a OpenSSL 3.0, i totes les versions posteriors (18, 20, 22) hereten aquest canvi. OpenSSL 3.0 deshabilita per defecte algoritmes considerats legacy, com MD4. Webpack 4, en la seva funció de fingerprinting de chunks, utilitza crypto.createHash('md4'), i al no trobar l'algoritme en el proveïdor predeterminat, llança l'excepció. Aquesta decisió no afecta el teu codi Lambda; ocorre a la màquina de CI, durant el build. Però com que la migració del runtime Lambda (de nodejs16.x a nodejs18.x) sol anar acompanyada de l'actualització de Node.js en CI, l'error es dispara just quan intentes modernitzar la teva infraestructura.
La solució més robusta i recomanada és actualitzar les eines de build: passar de Webpack 4 a Webpack 5, que reemplaça l'ús de MD4 per una implementació nativa a JavaScript (xxhash64). Si fas servir Create React App, actualitzar a react-scripts 5 resol el problema. En projectes amb Jest, la versió 27.4.2 ja no fa servir MD4. Una altra opció, tot i que temporal, és activar el proveïdor legacy via NODE_OPTIONS=--openssl-legacy-provider. No obstant això, aquesta bandera rehabilita algoritmes obsolets en tot el procés i podria deixar de funcionar en futures versions d'OpenSSL. Per això, el millor és afrontar el deute tècnic d'una vegada.
Aquest error és un indicador que la teva cadena d'eines no s'ha revisat des de l'era de Node.js 16. Ignorar-lo i posar un parxís temporal pot portar a problemes majors: incompatibilitats amb mòduls nadius, dependències deprecades, vulnerabilitats de seguretat. Les empreses que gestionen múltiples projectes i necessiten mantenir la ciberseguretat i l'estabilitat s'han de plantejar una estratègia d'actualització contínua. En Q2BSTUDIO entenem que cada organització té un context únic, per això oferim aplicacions a mesura que s'adapten a les necessitats reals de negoci, evitant solucions genèriques que generen deute tècnic.
Migrar a Node.js 18+ no hauria de ser un dolor de cap. Si el teu equip s'enfronta a aquest error, és moment de revisar no només el hash de webpack, sinó tot l'ecosistema de dependències. Tens encara trucades a l'eliminat en Node.js 22)? Uses SDKs vells d'AWS? Els teus mòduls nadius estan compilats per a la versió correcta? L'actualització a Node.js 18 és una oportunitat per netejar el projecte. En aquest context, els serveis cloud AWS i Azure que ofereix Q2Bstudio poden ajudar-te a redissenyar la teva arquitectura de desplegament, migrant funcions Lambda a runtimes moderns i optimitzant costos.
Més enllà de l'error tècnic, aquest cas ens recorda la importància de la gestió proactiva del cicle de vida del programari. Les eines que fem servir per construir les nostres aplicacions evolucionen, i mantenir-les al dia no és un luxe, sinó una necessitat per a la ciberseguretat i l'eficiència. Les empreses que integren intel·ligència artificial en els seus processos, com els agents IA per a automatització de tasques, necessiten entorns de desenvolupament robustos i actualitzats. A Q2Bstudio desenvolupem programari a mesura que incorpora intel·ligència artificial per a empreses, incloent solucions de serveis intel·ligència de negoci amb Power BI, tot executat sobre infraestructures cloud modernes.
Per a equips que encara no han migrat, recomanem un full de ruta: primer, identificar totes les funcions Lambda en runtimes antics (nodejs16.x o anteriors); segon, auditar les dependències del build amb eines com npm audit o snyk; tercer, actualitzar webpack, react-scripts i Jest a versions compatibles amb Node.js 18+; quart, provar en entorn de CI abans de tocar producció. Si necessites acompanyament en aquest procés, a Q2Bstudio oferim consultoria per a migracions cloud i modernització d'aplicacions.
En definitiva, l'error 0308010C no és més que una crida d'atenció sobre la salut del teu projecte. Abordar-ho amb una solució definitiva no només soluciona el problema immediat, sinó que enforteix tota la cadena de desenvolupament. No deixis que un simple hash de webpack aturi la teva innovació. Actualitza, prova i desplega amb confiança.





