# exception 'DOMPDF_Exception' with message 'No block-level parent found.  Not good.

# Introducción
Algunas veces con cambios entre servidores o proveedores de hosting, las aplicaciones de nuestros clientes, sufren ciertos descalabros, como por ejemplo el mostrar una página en blanco en lugar de renderizar un documento PDF.

Como norma general pensaremos en que hay un problema de nuestro servidor o hosting, en el que falta tal o cual extensión.

Craso error. Lo primero es lo primero. Hay que ver los logs.

## Análisis
Podemos acceder vía SSH a nuestra shell o en su defecto via cPanel
![Acceso shell via cPAnel](https://wiki.castris.com/books/cpanel-whm/page/cpanel-acceso-al-terminal-shell-via-cpanel-de-usuario)

Como podemos ver el error es claro:
```
[14-Jul-2021 05:49:24 UTC] Error al generar certificado : exception 'DOMPDF_Exception' with message 'No block-level parent found.  Not good.' in /home/dentista/public_html/dompdf/include/inline_positioner.cls.php:38
Stack trace:
#0 /home/dentista/public_html/dompdf/include/frame_decorator.cls.php(546): Inline_Positioner->position()
#1 /home/dentista/public_html/dompdf/include/text_frame_reflower.cls.php(331): Frame_Decorator->position()
#2 /home/dentista/public_html/dompdf/include/frame_decorator.cls.php(556): Text_Frame_Reflower->reflow(NULL)
#3 /home/dentista/public_html/dompdf/include/page_frame_reflower.cls.php(138): Frame_Decorator->reflow()
#4 /home/dentista/public_html/dompdf/include/frame_decorator.cls.php(556): Page_Frame_Reflower->reflow(NULL)
#5 /home/dentista/public_html/dompdf/include/dompdf.cls.php(817): Frame_Decorator->reflow()
#6 /home/dentista/public_html/pdfCerMaster.php(125): DOMPDF->render()
#7 {main}
```
~~~
Si nuestro proveedor usa PHP-FPM, los logs estarán en la carpeta `~/logs` con el formato `dominio_tld.php.error.log` 
Otros escenarios como fcgi, suPHP, etc, variarán según la configuración que el administrador haya impuesto por defecto o de manera personalizada
~~~

Este error no tiene nada que ver con la existencia o no de determinada extensión, sino con un error de en el analizador (parsing) de HTML5.

## Corrección
Debemos localizar el fichero de configuración que defina la variable DOMPDF_ENABLE_HTML5PARSER o en su defecto si nuestra app no la tiene acudiremos a la de la propia librería.

Buscamos el posible fichero
```
$ find . -type f -exec grep -il "DOMPDF_ENABLE_HTML5PARSER" {} \;
./dompdf/include/dompdf.cls.php
./dompdf/changelog.txt
./dompdf/dompdf_config.custom.inc.php
./dompdf/dompdf_config.inc.php
./lib/dompdf/include/dompdf.cls.php
./lib/dompdf/www/setup.php
./lib/dompdf/changelog.txt
./lib/dompdf/dompdf_config.custom.inc.php
./lib/dompdf/dompdf_config.inc.php
```

Por los nombres me acerco a pensar en `./dompdf/dompdf_config.inc.php` el cual paso a editar:
```
define("DOMPDF_ENABLE_HTML5PARSER", true);
```

Esto puede que funcione o no, pero al menos, me mostrará los errores de las etiquetas de HTML de una forma más adecuada.


## Enlaces
- [Manual para conexión SSH con Putty](https://manuales.castris.com/putty-ssh/)
- [Dompdf error “No block-level parent found. Not good.”](https://stackoverflow.com/questions/37521775/dompdf-error-no-block-level-parent-found-not-good)


## Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos.  También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de [Castris](https://castris.com)

Si necesitas soporte profesional puedes contratar con Castris [soporte profesional](https://intranet.castris.com/cart.php?gid=18).