Reparar 2025 el error de d3dx9_31.dll no encontrado en Windows 10 y 11

Resumen

¿Te aparece el temido mensaje “d3dx9_31.dll no encontrado” al abrir tu juego o aplicación favorita en Windows 10 u 11? No te preocupes, es un problema común con solución. En esta guía práctica te explicamos qué es d3dx9_31.dll y por qué falta, y te llevamos paso a paso desde métodos básicos hasta soluciones avanzadas para errores persistentes. Sigue leyendo y recupera el control de tu sistema en minutos.

Introducción al error d3dx9_31.dll

Ese instante de frustración es universal: das doble clic en el ícono de tu juego o programa favorito, esperando sumergirte en la acción, y en su lugar te recibe una ventana de error fría e inesperada: “d3dx9_31.dll no encontrado”. No es un fallo catastrófico, aunque lo pueda parecer. De hecho, es uno de los problemas más frecuentes que enfrentan los usuarios de Windows 10 y 11, especialmente cuando se trata de software o títulos más antiguos que dependen de tecnologías específicas.

Este mensaje no significa que tu instalación de Windows esté corrupta o que haya que formatear el equipo de inmediato. Es, sencillamente, la forma que tiene el sistema de decirte que le falta una pieza clave de software para ejecutar la aplicación. Piensa en este archivo .dll como un manual de instrucciones especializado que el programa necesita consultar para realizar ciertas tareas gráficas, y que, por la razón que sea, no está en la estantería correcta.

La buena noticia es que la reparación del error d3dx9_31.dll suele ser rápida y no requiere ser un experto en informática. En la gran mayoría de los casos, se soluciona en cuestión de minutos siguiendo unos pasos muy claros.

Las causas detrás de esta desaparición son variadas, pero predecibles. Desde una instalación de DirectX que no se completó correctamente, una desinstalación agresiva de otro software que eliminó el archivo por error, hasta una actualización de Windows que, sin querer, generó un conflicto. Comprender el “por qué” es el primer paso para aplicar la solución correcta y evitar que el problema reaparezca en el futuro. A continuación, exploraremos exactamente eso para que puedas diagnosticar y resolver el inconveniente con confianza.

¿Qué es d3dx9_31.dll y por qué falta?

Para entender realmente el problema, debemos desglosar el nombre del archivo. d3dx9_31.dll es una biblioteca de enlaces dinámicos (Dynamic-Link Library, de ahí la extensión .dll) que pertenece específicamente a DirectX 9, una colección de tecnologías desarrollada por Microsoft para manejar tareas relacionadas con multimedia, especialmente gráficos y sonido en videojuegos y aplicaciones exigentes. El “9” indica su versión, y el “31” es el número de revisión concreto. Aunque Windows 10 y 11 incluyen versiones mucho más modernas de DirectX (como la 11 o 12), una gran cantidad de software, sobre todo títulos clásicos o aplicaciones profesionales más antiguas, fueron diseñados para funcionar con los componentes de la versión 9.

Piensa en DirectX como un traductor especializado: tu aplicación le habla en el “idioma” DirectX 9, y este a su vez se comunica con tu tarjeta gráfica para generar las imágenes en pantalla. Si el “traductor” específico (d3dx9_31.dll) no está presente, la comunicación se rompe y aparece el error.

¿Por qué falta este archivo en sistemas modernos? Las razones son más comunes de lo que crees:
* Software antiguo o instalaciones incompletas: Muchos juegos antiguos incluían el instalador de DirectX 9 en su disco o carpeta de descarga. Si instalas el juego desde una fuente que omite este paso, o si la instalación se interrumpe, el archivo DLL necesario nunca llega a su ubicación correcta en el sistema.
* Limpiezas agresivas del sistema: Utilidades de “limpieza” de terceros o desinstaladores muy exhaustivos pueden, en ocasiones, identificar archivos DLL de versiones antiguas de DirectX como innecesarios y eliminarlos, provocando el fallo en aplicaciones que aún los necesitan.
* Actualizaciones de Windows: Aunque es menos frecuente, una actualización importante del sistema operativo puede, en raras ocasiones, alterar o eliminar componentes de versiones anteriores de DirectX por error.

La ubicación típica de este archivo es C:\Windows\System32. Sin embargo, intentar descargarlo manualmente de sitios no oficiales es una práctica de alto riesgo, ya que podrías introducir malware en tu equipo. La solución segura y permanente casi siempre pasa por restaurar o reinstalar los componentes correctos de DirectX, tal y como veremos en los siguientes métodos.

Comprender estas causas nos permite abordar la solución no como un parche temporal, sino como una reparación estructural. Ahora que sabemos el “qué” y el “por qué”, es momento de pasar a la acción y explorar las soluciones prácticas.

Causas comunes del error en Windows 10 y 11

Ahora que sabemos que el archivo d3dx9_31.dll es un componente legado de DirectX 9, es crucial identificar los escenarios específicos de Windows 10 y 11 que provocan su desaparición. No se trata de un fallo aleatorio, sino de consecuencias predecibles de cómo interactúan las aplicaciones antiguas con un sistema operativo moderno.

Una de las causas más frecuentes es la instalación de software antiguo. Muchos juegos clásicos, publicados originalmente en la era de Windows XP o Vista, asumían que el usuario tenía DirectX 9 instalado. Estos títulos solían incluir un instalador de DirectX en su carpeta (como Redist\DXSetup.exe). Si ese paso se omite deliberadamente, se cancela por un error, o si el juego se instala desde una fuente que lo ha eliminado, los archivos DLL necesarios nunca se copian a C:\Windows\System32. El programa intenta funcionar, pero al no encontrar su “manual de instrucciones” gráfico, se bloquea.

Otra razón poderosa son las herramientas de optimización. Aplicaciones de limpieza de terceros, aunque bienintencionadas, pueden ser demasiado agresivas. En su búsqueda por liberar espacio, a veces clasifican archivos DLL de versiones antiguas de DirectX como “redundantes” o “obsoletos” y los eliminan. El problema es que su criterio no tiene en cuenta si una aplicación instalada aún depende de ellos.

Un escenario común: tras usar una utilidad de limpieza, un juego que funcionaba perfectamente deja de hacerlo de repente con el error d3dx9_31.dll. La correlación no es casualidad.

Finalmente, aunque con menor frecuencia, las actualizaciones de Windows pueden ser el desencadenante. Una actualización importante puede, en casos aislados, causar un conflicto o corromper archivos del sistema existentes. Microsoft realiza pruebas exhaustivas, pero la inmensa variedad de configuraciones de hardware y software hace imposible prever every interacción.

Causa Escenario Típico Efecto
Instalación incompleta Omitir el instalador de DirectX incluido con un juego antiguo. El archivo DLL nunca llega al sistema.
Limpieza agresiva Ejecutar una utilidad de terceros que “optimiza” el sistema. El archivo existente es eliminado por error.
Actualización del sistema Instalar una gran actualización de Windows (ej. feature updates). Posible corrupción o conflicto con archivos existentes.

Conocer estas causas del error d3dx9_31.dll en Windows 10 y 11 nos permite no solo solucionar el problema actual, sino también prevenirlo en el futuro. Ahora, equipados con este diagnóstico, estamos listos para aplicar las soluciones prácticas que restaurarán la funcionalidad en minutos.

Métodos de reparación paso a paso

Bien, ha llegado el momento de pasar a la acción. Entender la raíz del problema es fundamental, pero lo que realmente necesitas son soluciones claras y efectivas. En esta sección, nos centraremos en los métodos de reparación paso a paso que han demostrado ser más eficaces para la gran mayoría de usuarios. Estos procedimientos están ordenados de menor a mayor complejidad, por lo que se recomienda seguirlos en el orden presentado.

La filosofía aquí es comenzar con las soluciones más seguras y que abordan el problema de forma global, en lugar de buscar un parche rápido. Reinstalar DirectX, por ejemplo, no solo restaura el archivo d3dx9_31.dll faltante, sino que asegura que todos los componentes relacionados estén correctamente instalados y sean coherentes. Esto previene futuros errores con otros archivos DLL de la misma familia.

Nota importante: Antes de comenzar, cierra completamente la aplicación o juego que está generando el error. Si es posible, cierra también otros programas para evitar conflictos durante los procesos de instalación o verificación.

A lo largo de los siguientes pasos, te guiaremos para que ejecutes cada método con confianza. No se necesita ser un experto; solo seguir las instrucciones al pie de la letra. La clave está en la precisión. Desde la descarga segura del paquete de software correcto directamente desde los servidores de Microsoft, hasta la verificación minuciosa de la integridad de los archivos de sistema, cada acción está encaminada a una reparación definitiva del error d3dx9_31.dll.

¿Listo para recuperar el acceso a tu software? Empecemos por el método más robusto y recomendado: la reinstalación de DirectX. Este enfoque suele ser la solución definitiva, dejando tu sistema preparado no solo para el programa que falla, sino para cualquier otra aplicación que dependa de estas bibliotecas gráficas.

Reinstalar DirectX desde Microsoft

El método más directo, seguro y efectivo para resolver el error “d3dx9_31.dll no encontrado” es reinstalar DirectX desde Microsoft. Como se explicó anteriormente, este archivo es un componente integral de DirectX 9, por lo que reinstalar el paquete completo no solo restaura el archivo específico que falta, sino que también reemplaza o repara cualquier otra biblioteca relacionada que pueda estar corrupta o desactualizada. Es el equivalente a reinstalar un programa completo para solucionar un problema con uno de sus módulos, asegurando coherencia y estabilidad.

A diferencia de descargar un único archivo DLL de fuentes riesgosas, este procedimiento garantiza la autenticidad y compatibilidad del software, ya que se obtiene directamente del desarrollador original. Microsoft ofrece un “Redistributable End-User” (paquete redistribuible para el usuario final) que contiene todas las versiones de las bibliotecas DirectX, desde la 9 hasta la 9.29, que son las necesarias para la gran mayoría de juegos y aplicaciones antiguas.

Paso a paso para reinstalar DirectX:
1. Dirígete al Centro de descargas de Microsoft y busca “DirectX End-User Runtime”. La versión más común y actualizada es la de junio de 2010, que sigue siendo la referencia para estos componentes legacy.
2. Descarga el archivo dxsetup.exe y, antes de ejecutarlo, cierra todas las aplicaciones abiertas, especialmente navegadores web y, por supuesto, el juego o programa que muestra el error.
3. Ejecuta el instalador como administrador (haz clic derecho sobre el archivo y selecciona “Ejecutar como administrador”). Esto concede los permisos necesarios para copiar archivos en las carpetas protegidas del sistema, como System32.
4. Sigue las instrucciones en pantalla, acepta el acuerdo de licencia y permite que el instalador complete su proceso. No es una instalación pesada y suele tardar solo unos minutos.
5. Una vez finalizado, reinicia tu equipo. Este paso es crucial para asegurar que todos los cambios se carguen correctamente en el sistema.

Tras el reinicio, la probabilidad de que el error haya desaparecido es extremadamente alta. Este método aborda la causa raíz de una instalación incompleta o corrupta de DirectX, proporcionando una solución integral para reparar archivos DirectX faltantes. Si el error persiste tras este método, indica que el problema podría ser más específico, lo que nos lleva perfectamente a la siguiente opción: restaurar el archivo DLL manualmente de forma segura.

Restaurar d3dx9_31.dll manualmente

Si la reinstalación completa de DirectX no ha dado resultado, o si estás seguro de que solo necesitas ese archivo específico, existe la opción de restaurar d3dx9_31.dll manualmente. Este enfoque es más quirúrgico, pero conlleva un riesgo importante si no se realiza con extrema precaución. Como se advirtió en secciones anteriores, descargar bibliotecas DLL de sitios web no oficiales es una lotería peligrosa: es la forma más común de introducir virus, spyware u otro malware en el sistema.

La única forma segura de obtener una copia genuina de d3dx9_31.dll es extraerla directamente del paquete redistribuible oficial de Microsoft que mencionamos en el método anterior. Así te aseguras de que el archivo es legítimo y está libre de modificaciones maliciosas.

Procedimiento seguro para extraer d3dx9_31.dll manualmente:
1. Descarga el mismo instalador de dxsetup.exe desde el Centro de descargas de Microsoft.
2. En lugar de ejecutarlo, necesitaremos un software adicional que pueda “desempaquetar” el instalador. Herramientas gratuitas como 7-Zip o Universal Extractor pueden hacer esto.
3. Haz clic derecho sobre el archivo dxsetup.exe y selecciona “Abrir con…” o “Extraer aquí” (dependiendo de la herramienta). Se creará una carpeta con los archivos contenidos.
4. Dentro de las carpetas extraídas, busca un archivo CAB (por ejemplo, APR2007_d3dx9_31_x86.cab o similar). Abre este archivo CAB con el mismo software de compresión.
5. En su interior, encontrarás el archivo d3dx9_31.dll. Extráelo a tu Escritorio.

Una vez tengas el archivo seguro en tu Escritorio, el siguiente paso es copiarlo en el directorio correcto:
* Para sistemas de 32 bits, la ruta es C:\Windows\System32.
* Para sistemas de 64 bits, la ruta es C:\Windows\SysWOW64 (sí, aunque parezca contraintuitivo, las aplicaciones de 32 bits en un Windows de 64 bits usan esta carpeta para sus DLL).

Crucial: Antes de copiar el archivo, haz una copia de seguridad del DLL original si ya existe uno en la carpeta de destino (renómbralo a d3dx9_31.dll.backup). Luego, copia el nuevo archivo y, cuando el sistema te pida permisos de administrador, concédeselos. Finalmente, reinicia el equipo.

Este método resuelve el problema de forma puntual, pero es menos robusto que reinstalar DirectX por completo. Si el error persiste incluso después de colocar manualmente el archivo, es una señal clara de que existe un problema subyacente más profundo, posiblemente de integridad del sistema, que exploraremos a continuación con la verificación de archivos de sistema.

Verificar integridad de archivos de sistema

A veces, el problema no reside únicamente en un archivo específico de DirectX, sino en una corrupción más amplia de los archivos críticos de Windows. Es aquí donde el Comprobador de Archivos de Sistema (SFC), una herramienta integrada en el sistema operativo, se convierte en nuestra siguiente línea de defensa. Si los métodos anteriores no han logrado solucionar la falta de d3dx9_31.dll, ejecutar SFC es el paso lógico siguiente, ya que escanea y repara automáticamente las versiones protegidas de los archivos de sistema que puedan estar dañados.

Imagina que Windows tiene una “copia maestra” de sus archivos esenciales guardada en un lugar seguro. El comando sfc /scannow compara los archivos de sistema en tu carpeta C:\Windows con esa copia maestra. Si encuentra discrepancias—como un d3dx9_31.dll corrupto, modificado o incluso faltante—intenta reemplazarlo inmediatamente por la versión correcta. Este proceso es especialmente útil si el error comenzó a aparecer después de una actualización fallida o de un cierre incorrecto del sistema.

Para ejecutar el Comprobador de Archivos de Sistema (SFC):
1. Haz clic en el botón de Inicio y escribe “cmd” o “Símbolo del sistema”.
2. Haz clic derecho sobre la aplicación y selecciona “Ejecutar como administrador”. Este permiso es absolutamente indispensable para que la herramienta tenga acceso para reparar los archivos.
3. En la ventana negra que se abre, teclea el siguiente comando y pulsa Enter:
bash
sfc /scannow

4. El proceso de verificación puede llevar entre 10 y 20 minutos. No cierres la ventana hasta que finalice por completo. Verás uno de estos tres mensajes:
* “Protección de recursos de Windows no encontró ninguna infracción de integridad.” Esto significa que tus archivos de sistema están bien. El problema podría estar en otra parte.
* “Protección de recursos de Windows encontró archivos dañados y los reparó correctamente.” ¡Este es el resultado ideal! Un reinicio suele ser suficiente para aplicar los cambios.
* “Protección de recursos de Windows encontró archivos dañados pero no pudo reparar algunos de ellos.” Esto indica un problema más profundo que requiere un paso adicional (como el uso de DISM), que exploraremos en las soluciones avanzadas.

La principal ventaja de esta herramienta es su capacidad para reparar archivos DirectX faltantes de forma automatizada y segura, sin necesidad de que el usuario busque o descargue nada manualmente. Si SFC logra reparar el sistema, no solo se solucionará el error actual, sino que se habrá corregido cualquier otra corrupción latente que pudiera causar problemas inesperados en el futuro. Si el error persiste incluso después de esto, es una señal clara de que debemos profundizar aún más, pasando a las soluciones avanzadas para errores persistentes que abordarán componentes del sistema de bajo nivel.

Soluciones avanzadas para errores persistentes

Si has llegado hasta aquí, significa que el error “d3dx9_31.dll no encontrado” se resiste a desaparecer incluso después de reinstalar DirectX y verificar los archivos del sistema. No te desanimes; este tipo de problemas persistentes suelen tener su origen en un nivel más profundo del software, y por suerte, contamos con herramientas específicas para abordarlos. Esta sección está dedicada a esas soluciones avanzadas para errores persistentes que actúan donde los métodos básicos no llegan.

Cuando el Comprobador de Archivos de Sistema (SFC) no puede reparar los archivos dañados, el problema suele ser que la “copia maestra” con la que compara el sistema está misma corrupta. Aquí es donde entra en juego una herramienta más potente: Deployment Image Servicing and Management (DISM). Mientras que SFC repara archivos individuales, DISM repara la imagen de Windows subyacente que sirve como fuente para esos archivos. Es como arreglar primero el molde antes de seguir produciendo piezas.

Para ejecutar DISM (debes estar conectado a Internet):
1. Abre el Símbolo del sistema como administrador.
2. Introduce el siguiente comando y pulsa Enter:
bash
DISM /Online /Cleanup-Image /RestoreHealth

3. Este proceso puede llevar bastante tiempo (hasta 20-30 minutos) y descargará archivos sanos desde los servidores de Microsoft para reemplazar los corruptos. No interrumpas el proceso.
4. Una vez finalizado, vuelve a ejecutar el comando sfc /scannow. Con la imagen del sistema reparada, SFC podrá ahora completar su trabajo correctamente.

Otra causa común de errores DLL persistentes, especialmente después de una actualización mayor de Windows, es la existencia de archivos duplicados o conflictivos entre versiones antiguas y nuevas de las bibliotecas. Una instalación limpia de los controladores de gráficos puede resolver este conflicto, ya que estos paquetes suelen incluir sus propias versiones de bibliotecas DLL críticas y reemplazan cualquier versión problemática con las correctas. Este enfoque no solo busca el archivo faltante, sino que restablece la comunicación limpia entre el sistema operativo y tu hardware gráfico, eliminando cuellos de botella que podrían estar enmascarando el error original.

Estas soluciones representan un enfoque más integral y son el último paso lógico antes de considerar opciones más drásticas. Al aplicar estas herramientas, no solo estás solucionando un archivo DLL, sino que estás sanando capas fundamentales de tu sistema operativo. A continuación, nos centraremos en el primero de estos pilares: la actualización de controladores de gráficos, un paso crucial que a menudo es la clave definitiva para resolver el problema de una vez por todas.

Actualizar controladores de gráficos

Llegados a este punto, hemos abordado las soluciones más comunes. Pero si el error persiste con terquedad, es muy probable que el problema no esté en el archivo DLL en sí, sino en el software que actúa como puente entre tu sistema y el hardware gráfico: los controladores. Mantener los controladores de gráficos actualizados es crucial, no solo para obtener el máximo rendimiento en los juegos más nuevos, sino también para garantizar la compatibilidad con tecnologías legacy como DirectX 9. Un controlador desactualizado, corrupto o incluso una versión beta inestable puede ser la raíz de errores DLL aparentemente inexplicables.

Los controladores modernos de NVIDIA, AMD e Intel no solo optimizan el rendimiento; también incluyen sus propias implementaciones y versiones de bibliotecas de sistema críticas. Al instalar una versión nueva y limpia, se reemplazan archivos potencialmente conflictivos y se restablece una base sólida para que todas las aplicaciones, antiguas y nuevas, se comuniquen correctamente con la tarjeta gráfica.

El proceso recomendado para una actualización limpia:
1. Identifica el modelo exacto de tu tarjeta gráfica. Presiona Win + R, escribe dxdiag, ve a la pestaña “Pantalla” y anota el nombre del chip.
2. Visita el sitio web oficial del fabricante (nvidia.es, amd.com o intel.es) y descarga el controlador más reciente para tu modelo y tu versión de Windows.
3. Antes de instalar, es altamente recomendable realizar una desinstalación limpia. Descarga la herramienta DDU (Display Driver Uninstaller) desde su fuente oficial (Guru3D). Reinicia Windows en “Modo seguro” (mantén pulsado Mayús mientras haces clic en “Reiniciar” en el menú Inicio, luego “Solucionar problemas” > “Opciones avanzadas” > “Configuración de inicio” > “Reiniciar” y selecciona “Modo seguro con funciones de red”).
4. En Modo seguro, ejecuta DDU y selecciona la opción para limpiar y reiniciar. Esto eliminará todos los rastros de los controladores anteriores, evitando conflictos.
5. Tras el reinazo, instala el controlador nuevo que descargaste.

Este método de actualizar controladores de gráficos para el error d3dx9_31 es especialmente efectivo si el problema surgió después de una actualización de Windows, que a veces instala controladores genéricos que sustituyen a los específicos del fabricante. Al restaurar el controlador oficial, se corrige este desajuste. Si tras esta limpieza profunda el error desaparece, habrás no solo solucionado el problema inmediato, sino también mejorado la estabilidad general de tu sistema. Si, contra todo pronóstico, el mensaje de error aún aparece, nuestra última herramienta de diagnóstico, el Comprobador de Archivos de Sistema, nos dará la respuesta definitiva sobre la integridad de Windows.

Ejecutar comprobador de archivos de sistema (SFC)

El Comprobador de Archivos de Sistema (SFC) es, en muchos sentidos, la última línea de defensa automatizada de Windows antes de considerar reparaciones más manuales o complejas. Si has aplicado los métodos anteriores—reinstalación de DirectX, restauración manual e incluso una actualización limpia de controladores—y el error “d3dx9_31.dll” persiste, es muy probable que estés ante una corrupción subyacente en los archivos protegidos de Windows. El comando sfc /scannow no es solo una herramienta más; es un diagnóstico profundo que verifica la integridad de todo el sistema de archivos críticos.

La potencia de SFC reside en su capacidad para comparar cada archivo de sistema con una “copia maestra” almacenada en caché. Si detecta que d3dx9_31.dll está corrupto, tiene un hash que no coincide o directamente falta, lo reemplaza automáticamente por la versión correcta. Este proceso es fundamental cuando fallan las soluciones más directas, porque indica que el problema no era de instalación, sino de integridad. Un cierre inesperado del sistema, un error de escritura en el disco duro o los residuos de una actualización fallida pueden ser los causantes.

Resultados de SFC y su significado:

Resultado Significado Próximo Paso
“No se encontraron infracciones” Los archivos de sistema están sanos. El problema podría ser de configuración de la aplicación. Proceder a verificar la compatibilidad del software.
“Archivos dañados reparados correctamente” ¡Éxito! SFC identificó y solucionó la corrupción. Reiniciar el equipo es crucial para aplicar los cambios.
“No pudo reparar algunos archivos” La copia maestra local está dañada. Se requiere una herramienta más potente (DISM). Es el escenario perfecto para la solución avanzada mencionada anteriormente.

Ejecutar SFC es sencillo, pero requiere precisión. Abre el Símbolo del sistema o PowerShell como administrador—un paso no negociable—y teclea sfc /scannow. La herramienta trabajará en segundo plano durante 10-20 minutos. Es vital no interrumpir el proceso. Si el informe final indica que se repararon archivos dañados, un reinicio posterior suele ser la culminación para solucionar la falta de d3dx9_31.dll de manera definitiva. Este método no solo resuelve el error inmediato, sino que sanea el sistema de otras corrupciones latentes que podrían manifestarse en el futuro.

Cuando SFC logra su objetivo, confirma que el problema era puramente de integridad del sistema. Si, por el contrario, reporta una incapacidad para reparar, nos está dando una pista invaluable: la imagen de Windows itself necesita atención, guiándonos hacia el uso de DISM para una reparación avanzada de errores persistentes que restablecerá los cimientos del sistema operativo.

Conclusión

En resumen, esta guía te ha proporcionado un camino claro para reparar el error d3dx9_31.dll no encontrado, desde la reinstalación sencilla de DirectX hasta soluciones avanzadas para casos persistentes. El verdadero valor está en entender las causas y aplicar el método más adecuado paso a paso. Como siguiente acción inmediata, te recomendamos comenzar por la verificación de integridad de archivos de sistema (SFC), una herramienta integrada de Windows que corrige corruptelas subyacentes de forma segura. Con estos pasos, recuperarás el funcionamiento de tus aplicaciones favoritas de manera rápida y permanente.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *