

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Solución de problemas AWS IoT Greengrass V2
<a name="troubleshooting"></a>

Utilice la información y las soluciones de solución de problemas de esta sección para ayudar a resolver los problemas con. AWS IoT Greengrass Version 2

**Topics**
+ [Consulte los registros AWS IoT Greengrass principales de software y componentes](#troubleshoot-with-logs)
+ [AWS IoT Greengrass Problemas principales de software](#greengrass-core-issues)
+ [AWS IoT Greengrass problemas con la nube](#greengrass-cloud-issues)
+ [Problemas de implementación del dispositivo principal](#greengrass-core-deployment-issues)
+ [Problemas con los componentes del dispositivo principal](#greengrass-core-component-issues)
+ [Problemas con los componentes de la función de Lambda del dispositivo principal](#greengrass-core-lambda-function-issues)
+ [Versión del componente descontinuada](#discontinued-component-version)
+ [Problemas con la interfaz de la línea de comandos de Greengrass](#greengrass-cli-issues)
+ [AWS Command Line Interface problemas](#aws-cli-issues)
+ [Códigos de error de implementación detallados](troubleshooting-deployment.md)
+ [Códigos de estado de componentes detallados](troubleshooting-component.md)

## Consulte los registros AWS IoT Greengrass principales de software y componentes
<a name="troubleshoot-with-logs"></a>

El software AWS IoT Greengrass Core escribe registros en el sistema de archivos local que puede usar para ver información en tiempo real sobre el dispositivo principal. También puede configurar los dispositivos principales para que escriban registros en los CloudWatch registros, de modo que pueda solucionar los problemas de los dispositivos principales de forma remota. Estos registros pueden ayudarlo a identificar problemas con los componentes, las implementaciones y los dispositivos principales. Para obtener más información, consulte [Supervisión de los registros de AWS IoT Greengrass](monitor-logs.md).

## AWS IoT Greengrass Problemas principales de software
<a name="greengrass-core-issues"></a>

Solucionar problemas AWS IoT Greengrass de software principal. 

**Topics**
+ [ThrottlingException desde ListDeployments la API](#ThrottlingException)
+ [No se ha podido configurar el dispositivo principal](#unable-to-set-up-core-device)
+ [No se puede iniciar el software AWS IoT Greengrass Core como un servicio del sistema](#unable-to-start-system-service)
+ [No se puede configurar el núcleo como un servicio del sistema](#unable-to-set-up-system-service)
+ [No se puede conectar a AWS IoT Core](#core-error-unable-to-connect-to-aws-iot)
+ [Error de falta de memoria](#java-out-of-memory)
+ [No se puede instalar la CLI de Greengrass](#unable-to-install-greengrass-cli)
+ [User root is not allowed to execute](#user-not-allowed-to-execute)
+ [com.aws.greengrass.lifecyclemanager.GenericExternalService: Could not determine user/group to run with](#missing-default-run-with-user)
+ [Failed to map segment from shared object: operation not permitted](#tmp-folder-noexec)
+ [No se pudo configurar el servicio de Windows](#failed-to-set-up-windows-service)
+ [com.aws.greengrass.util.exceptions.TLSAuthException: Failed to get trust manager](#failed-to-get-trust-manager)
+ [com.aws.greengrass.deployment.IotJobsHelper: No connection available during subscribing to Iot Jobs descriptions topic. Will retry in sometime](#iot-jobs-no-connection-available)
+ [software.amazon.awssdk.services.iam.model.IamException: The security token included in the request is invalid](#error-invalid-security-token)
+ [software.amazon.awssdk.services.iot.model.IotException: User: <user> is not authorized to perform: iot:GetPolicy](#missing-automatic-provisioning-permissions)
+ [Error: com.aws.greengrass.shadowmanager.sync.model.FullShadowSyncRequest: Could not execute cloud shadow get request](#shadow-manager-error-could-not-execute-shadow-get-request)
+ [Operation aws.greengrass\$1<operation> is not supported by Greengrass](#ipc-operation-not-supported)
+ [java.io.FileNotFoundException: <stream-manager-store-root-dir>/stream\$1manager\$1metadata\$1store (Permission denied)](#stream-manager-store-root-folder-not-found)
+ [com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: Private key or certificate with label <label> does not exist](#pkcs11-provider-error-private-key-or-certificate-does-not-exist)
+ [software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: User: <user> is not authorized to perform: secretsmanager:GetSecretValue on resource: <arn>](#secret-manager-error-not-authorized-to-perform-get-secret-value)
+ [software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: Access to KMS is not allowed](#secret-manager-error-no-kms-access)
+ [java.lang.NoClassDefFoundError: com/aws/greengrass/security/CryptoKeySpi](#hardware-security-incompatible-nucleus-version)
+ [com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: CKR\$1OPERATION\$1NOT\$1INITIALIZED](#ckr-operation-not-initialized)
+ [Greengrass core device stuck on nucleus v2.12.3](#v2.12.3-revise-deployment)
+ [Greengrass nucleus v2.14.0 systemd template issue](#v2.14.0-systemd-template)

### ThrottlingException desde ListDeployments la API
<a name="ThrottlingException"></a>

`ThrottlingException` de la API `ListDeployments`: es posible que observe esto cuando tenga una gran cantidad de implementaciones. 

Para resolver este problema, siga uno de estos pasos:
+ Si usa el SDK, especifique el MaxResult parámetro. Por ejemplo, para [JavaSDK](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/greengrassv2/model/ListDeploymentsRequest.html#maxResults) con un valor pequeño (por ejemplo, 5).
+ Puede usar [AWS Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html) para solicitar un aumento del límite de velocidad de la API `DescribeJob`. Puedes ir a la consola de cuotas de servicio, seleccionar las cuotas AWS IoT y el nombre del límite es **DescribeJob throttle limit**. Puede aumentarlo de 10 a 50.

### No se ha podido configurar el dispositivo principal
<a name="unable-to-set-up-core-device"></a>

Si el instalador del software AWS IoT Greengrass principal falla y no puedes configurar un dispositivo principal, es posible que tengas que desinstalar el software y volver a intentarlo. Para obtener más información, consulte [Desinstalación del software AWS IoT Greengrass Core](uninstall-greengrass-core-v2.md).

### No se puede iniciar el software AWS IoT Greengrass Core como un servicio del sistema
<a name="unable-to-start-system-service"></a>

Si el software AWS IoT Greengrass principal no se inicia, [compruebe los registros de servicio del sistema](monitor-logs.md#access-system-service-logs) para identificar el problema. Un problema habitual es que Java no esté disponible en la variable de entorno PATH (Linux) o en la variable de sistema PATH (Windows).

### No se puede configurar el núcleo como un servicio del sistema
<a name="unable-to-set-up-system-service"></a>

Es posible que aparezca este error si el instalador del software AWS IoT Greengrass principal no se configura AWS IoT Greengrass como un servicio del sistema. En los dispositivos Linux, este error suele producirse si el dispositivo principal no tiene el sistema de inicio [systemd](https://en.wikipedia.org/wiki/Systemd). El instalador puede configurar correctamente el software AWS IoT Greengrass principal aunque no pueda configurar el servicio del sistema.

Realice una de las siguientes acciones:
+ Configure y ejecute el software AWS IoT Greengrass principal como un servicio del sistema. Debe configurar el software como un servicio del sistema para poder utilizar todas las características de AWS IoT Greengrass. Puede instalar [systemd](https://en.wikipedia.org/wiki/Systemd) o utilizar un sistema de inicio diferente. Para obtener más información, consulte [Configuración del núcleo de Greengrass como un servicio del sistema](configure-greengrass-core-v2.md#configure-system-service).
+ Ejecute el software AWS IoT Greengrass principal sin un servicio de sistema. Puede ejecutar el software mediante un script de cargador que el instalador configura en la carpeta raíz de Greengrass. Para obtener más información, consulte [Ejecute el software AWS IoT Greengrass Core sin un servicio de sistema](run-greengrass-core-v2.md#run-greengrass-core-no-system-service).

### No se puede conectar a AWS IoT Core
<a name="core-error-unable-to-connect-to-aws-iot"></a>

Es posible que aparezca este error cuando el software AWS IoT Greengrass principal no se pueda conectar AWS IoT Core para recuperar los trabajos de implementación, por ejemplo. Haga lo siguiente:
+ Comprueba que tu dispositivo principal se pueda conectar a Internet y AWS IoT Core. Para obtener más información sobre el AWS IoT Core punto final al que se conecta el dispositivo, consulte[Configurar el software AWS IoT Greengrass principal](configure-greengrass-core-v2.md).
+ Comprueba que el dispositivo AWS IoT principal utilice un certificado que permita los `iot:Subscribe` permisos `iot:Connect` `iot:Publish``iot:Receive`,, y.
+ Si su dispositivo principal usa un [proxy de red](configure-greengrass-core-v2.md#configure-network-proxy), compruebe que el dispositivo principal tenga un [rol de dispositivo](device-service-role.md) y que este rol conceda los permisos `iot:Connect`, `iot:Publish`, `iot:Receive` y `iot:Subscribe`.

### Error de falta de memoria
<a name="java-out-of-memory"></a>

Este error suele producirse si el dispositivo no tiene memoria suficiente para asignar un objeto en el montón de Java. En los dispositivos con memoria limitada, es posible que tenga que especificar un tamaño máximo de pila para controlar la asignación de memoria. Para obtener más información, consulte [Control de la asignación de memoria con las opciones de JVM](configure-greengrass-core-v2.md#jvm-tuning).

### No se puede instalar la CLI de Greengrass
<a name="unable-to-install-greengrass-cli"></a>

Es posible que veas el siguiente mensaje de consola cuando utilices el `--deploy-dev-tools` argumento en el comando de instalación de AWS IoT Greengrass Core.

```
Thing group exists, it could have existing deployment and devices, hence NOT creating deployment for Greengrass first party dev tools, please manually create a deployment if you wish to
```

Esto ocurre cuando el componente CLI de Greengrass no está instalado porque el dispositivo principal es miembro de un grupo de objetos que tiene una implementación existente. Si ve este mensaje, puede implementar manualmente el componente CLI de Greengrass (`aws.greengrass.Cli`) en el dispositivo para instalar la CLI de Greengrass. Para obtener más información, consulte [Instalación de la CLI de Greengrass](install-gg-cli.md).

### User root is not allowed to execute
<a name="user-not-allowed-to-execute"></a>

Es posible que aparezca este error cuando el usuario que ejecuta el software AWS IoT Greengrass Core (normalmente`root`) no tiene permiso para ejecutar `sudo` con ningún usuario ni grupo. Para el usuario `ggc_user` predeterminado del sistema, este error tiene el siguiente aspecto:

```
Sorry, user root is not allowed to execute <command> as ggc_user:ggc_group.
```

Compruebe que el archivo `/etc/sudoers` da permiso al usuario para ejecutar `sudo` como otros grupos. El permiso para el usuario en `/etc/sudoers` debería verse como el siguiente ejemplo.

```
root    ALL=(ALL:ALL) ALL
```

### com.aws.greengrass.lifecyclemanager.GenericExternalService: Could not determine user/group to run with
<a name="missing-default-run-with-user"></a>

Es posible que aparezca este error cuando el dispositivo principal intente ejecutar un componente y el núcleo de Greengrass no especifique un usuario de sistema predeterminado para ejecutar los componentes.

Para solucionar este problema, configure el núcleo de Greengrass para especificar el usuario del sistema predeterminado que ejecuta los componentes. Para obtener más información, consulte [Configuración del usuario que ejecuta los componentes](configure-greengrass-core-v2.md#configure-component-user) y [Configuración del usuario del componente predeterminado](configure-greengrass-core-v2.md#configure-default-component-user).

### Failed to map segment from shared object: operation not permitted
<a name="tmp-folder-noexec"></a>

Es posible que veas este error cuando el software AWS IoT Greengrass principal no se inicie porque la `/tmp` carpeta está montada con `noexec` permisos. La [biblioteca Common Runtime (CRT) de AWS](https://github.com/awslabs/aws-crt-java) usa la carpeta `/tmp` de forma predeterminada.

Realice una de las siguientes acciones:
+ Ejecute el siguiente comando para volver a montar la carpeta `/tmp` con permisos `exec` e inténtelo de nuevo.

  ```
  sudo mount -o remount,exec /tmp
  ```
+ Si ejecuta Greengrass nucleus v2.5.0 o posterior, puede configurar una opción de JVM para cambiar la carpeta que utiliza la biblioteca CRT. AWS Puede especificar el `jvmOptions` parámetro en la configuración del componente núcleo de Greengrass en una implementación o al instalar el software AWS IoT Greengrass Core. */path/to/use*Sustitúyalo por la ruta a una carpeta que pueda usar la biblioteca AWS CRT.

  ```
  {
    "jvmOptions": "-Daws.crt.lib.dir=\"/path/to/use\""
  }
  ```

### No se pudo configurar el servicio de Windows
<a name="failed-to-set-up-windows-service"></a>

Es posible que veas este error si instalas el software AWS IoT Greengrass Core en un dispositivo Microsoft Windows 2016. El software AWS IoT Greengrass principal no es compatible con Windows 2016; para obtener una lista de los sistemas operativos compatibles, consulte[Plataformas admitidas](greengrass-nucleus-component.md#greengrass-v2-supported-platforms).

Si debe utilizar Windows 2016, puede hacer lo siguiente:

1. Descomprima el archivo de instalación AWS IoT Greengrass de Core descargado

1. Abra el archivo `bin/greengrass.xml.template` en el directorio `Greengrass`.

1. Agregue la etiqueta `<autoRefresh>` al final del archivo justo antes de la etiqueta `</service>`.

   ```
     </log>
     <autoRefresh>false</autoRefresh>
   </service>
   ```

### com.aws.greengrass.util.exceptions.TLSAuthException: Failed to get trust manager
<a name="failed-to-get-trust-manager"></a>

Es posible que aparezca este error al instalar el software AWS IoT Greengrass Core sin un archivo raíz de una entidad emisora de certificados (CA).

```
2022-06-05T10:00:39.556Z [INFO] (main) com.aws.greengrass.lifecyclemanager.Kernel: service-loaded. {serviceName=DeploymentService}
2022-06-05T10:00:39.943Z [WARN] (main) com.aws.greengrass.componentmanager.ClientConfigurationUtils: configure-greengrass-mutual-auth. Error during configure greengrass client mutual auth. {}
com.aws.greengrass.util.exceptions.TLSAuthException: Failed to get trust manager
```

Compruebe que ha especificado un archivo de CA raíz válido con el parámetro `rootCaPath` en el archivo de configuración que ha proporcionado al instalador. Para obtener más información, consulte [Instalación del software AWS IoT Greengrass Core](install-greengrass-core-v2.md).

### com.aws.greengrass.deployment.IotJobsHelper: No connection available during subscribing to Iot Jobs descriptions topic. Will retry in sometime
<a name="iot-jobs-no-connection-available"></a>

Es posible que veas este mensaje de advertencia cuando el dispositivo principal no pueda conectarse para suscribirse AWS IoT Core a las notificaciones de tareas de implementación. Haga lo siguiente:
+ Compruebe que el dispositivo principal esté conectado a Internet y pueda acceder al punto final de AWS IoT datos que configuró. Para obtener más información acerca de los puntos de conexión que utilizan los dispositivos principales, consulte [Cómo permitir el tráfico del dispositivo a través de un proxy o firewall](allow-device-traffic.md).
+ Compruebe los registros de Greengrass para ver si hay otros errores que revelen otras causas principales.

### software.amazon.awssdk.services.iam.model.IamException: The security token included in the request is invalid
<a name="error-invalid-security-token"></a>

Es posible que aparezca este error al [instalar el software AWS IoT Greengrass principal con el aprovisionamiento automático](quick-installation.md) y el instalador utilice un token de AWS sesión que no es válido. Haga lo siguiente:
+ Si utiliza credenciales de seguridad temporales, compruebe que el token de sesión es correcto y que está copiando y pegando el token de sesión completo.
+ Si utiliza credenciales de seguridad de larga duración, compruebe que el dispositivo no tenga un token de sesión de una época en la que utilizó credenciales temporales. Haga lo siguiente:

  1. Ejecute el siguiente comando para anular la configuración de la variable de entorno del token de sesión.

------
#### [ Linux or Unix ]

     ```
     unset AWS_SESSION_TOKEN
     ```

------
#### [ Windows Command Prompt (CMD) ]

     ```
     set AWS_SESSION_TOKEN=
     ```

------
#### [ PowerShell ]

     ```
     Remove-Item Env:\AWS_SESSION_TOKEN
     ```

------

  1. Compruebe si el archivo de AWS credenciales,`~/.aws/credentials`, contiene un token de sesión,`aws_session_token`. Si es así, elimine esa línea del archivo.

     ```
     aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
     ```

También puede instalar el software AWS IoT Greengrass Core sin proporcionar AWS credenciales. Para obtener más información, consulte [Instale el software AWS IoT Greengrass principal con aprovisionamiento manual de recursos](manual-installation.md) o [Instale el software AWS IoT Greengrass principal con aprovisionamiento AWS IoT de flota](fleet-provisioning.md).

### software.amazon.awssdk.services.iot.model.IotException: User: <user> is not authorized to perform: iot:GetPolicy
<a name="missing-automatic-provisioning-permissions"></a>

Es posible que aparezca este error al [instalar el software AWS IoT Greengrass principal con el aprovisionamiento automático](quick-installation.md) y el instalador utilice AWS credenciales que no tienen los permisos necesarios. Para obtener más información sobre los permisos necesarios, consulte [Política de IAM mínima para que el instalador aprovisione recursos](provision-minimal-iam-policy.md).

Compruebe los permisos de la identidad de IAM de las credenciales y otorgue a la identidad de IAM los permisos necesarios que falten.

### Error: com.aws.greengrass.shadowmanager.sync.model.FullShadowSyncRequest: Could not execute cloud shadow get request
<a name="shadow-manager-error-could-not-execute-shadow-get-request"></a>

Es posible que veas este error cuando utilices el [componente administrador de sombras](shadow-manager-component.md) [para sincronizar dispositivos ocultos con AWS IoT Core ellos](sync-shadows-with-iot-core.md). El código de estado HTTP 403 indica que este error se produjo porque la AWS IoT política del dispositivo principal no concede permiso para realizar llamadas`GetThingShadow`.

```
com.aws.greengrass.shadowmanager.sync.model.FullShadowSyncRequest: Could not execute cloud shadow get request. {thing name=MyGreengrassCore, shadow name=MyShadow}
2021-07-14T21:09:02.456Z [ERROR] (pool-2-thread-109) com.aws.greengrass.shadowmanager.sync.SyncHandler: sync. Skipping sync request. {thing name=MyGreengrassCore, shadow name=MyShadow}
com.aws.greengrass.shadowmanager.exception.SkipSyncRequestException: software.amazon.awssdk.services.iotdataplane.model.IotDataPlaneException: null (Service: IotDataPlane, Status Code: 403, Request ID: f6e713ba-1b01-414c-7b78-5beb3f3ad8f6, Extended Request ID: null)
```

Para sincronizar con las sombras locales AWS IoT Core, la AWS IoT política del dispositivo principal debe conceder los siguientes permisos:
+ `iot:GetThingShadow`
+ `iot:UpdateThingShadow`
+ `iot:DeleteThingShadow`

Comprueba la AWS IoT política del dispositivo principal y añade los permisos necesarios que falten. Para obtener más información, consulte los siguientes temas:
+ [AWS IoT Core acciones políticas](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) en la *Guía para AWS IoT desarrolladores*
+ [Actualice la AWS IoT política de un dispositivo principal](device-auth.md#update-core-device-iot-policy)

### Operation aws.greengrass\$1<operation> is not supported by Greengrass
<a name="ipc-operation-not-supported"></a>

Es posible que aparezca este error cuando utilice una [operación de comunicación entre procesos (IPC)](interprocess-communication.md) en un componente personalizado de Greengrass y el componente requerido AWS proporcionado no esté instalado en el dispositivo principal.

Para solucionar este problema, añada el componente necesario como una [dependencia en la receta de componentes](component-recipe-reference.md#recipe-reference-component-dependencies), de modo que el software AWS IoT Greengrass principal instale el componente necesario al implementar el componente.
+ [Recupera los valores secretos](ipc-secret-manager.md): `aws.greengrass.SecretManager`
+ [Interactúa con las sombras locales](ipc-local-shadows.md): `aws.greengrass.ShadowManager`
+ [Administre las implementaciones y los componentes locales](ipc-local-deployments-components.md): `aws.greengrass.Cli` versión 2.6.0 o posterior
+ [Autentice y autorice los dispositivos DE cliente](ipc-client-device-auth.md): `aws.greengrass.clientdevices.Auth` versión 2.2.0 o posterior

### java.io.FileNotFoundException: <stream-manager-store-root-dir>/stream\$1manager\$1metadata\$1store (Permission denied)
<a name="stream-manager-store-root-folder-not-found"></a>

Es posible que vea este error en el archivo de registro del administrador de flujos (`aws.greengrass.StreamManager.log`) cuando configura el [administrador de flujos](stream-manager-component.md) para que use una carpeta raíz que no existe o que no tiene los permisos correctos. Para obtener más información sobre cómo configurar esta carpeta, consulte [configuración del administrador de flujos](stream-manager-component.md#stream-manager-component-configuration).

### com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: Private key or certificate with label <label> does not exist
<a name="pkcs11-provider-error-private-key-or-certificate-does-not-exist"></a>

Este error se produce cuando el [componente proveedor PKCS \$111](pkcs11-provider-component.md) no encuentra ni carga la clave privada o el certificado que especificó al configurar el software AWS IoT Greengrass principal para que utilice un [módulo de seguridad de hardware (HSM](hardware-security.md)). Haga lo siguiente:
+ Compruebe que la clave privada y el certificado estén almacenados en el HSM mediante la ranura, el PIN de usuario y la etiqueta de objeto para los que ha configurado el software AWS IoT Greengrass Core.
+ Compruebe que la clave privada y el certificado utilizan la misma etiqueta de objeto en el HSM.
+ Si su HSM admite un objeto IDs, compruebe que la clave privada y el certificado utilicen el mismo ID de objeto en el HSM.

Consulte la documentación de su HSM para obtener información sobre cómo consultar los detalles sobre los tokens de seguridad del HSM. Si necesita cambiar la ranura, la etiqueta del objeto o el identificador del objeto por un token de seguridad, consulte la documentación de su HSM para obtener información sobre cómo hacerlo.

### software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: User: <user> is not authorized to perform: secretsmanager:GetSecretValue on resource: <arn>
<a name="secret-manager-error-not-authorized-to-perform-get-secret-value"></a>

Este error puede producirse cuando se utiliza el [componente de administrador de secretos](secret-manager-component.md) para implementar un AWS Secrets Manager secreto. Si el [rol de IAM de intercambio de token](device-service-role.md) del dispositivo principal no otorga permiso para obtener el secreto, la implementación falla y los registros de Greengrass incluyen este error.

**Cómo autorizar a un dispositivo principal a descargar un secreto**

1. Agregue el permiso `secretsmanager:GetSecretValue` al rol de intercambio de token del dispositivo principal. En el siguiente ejemplo de declaración de política, se concede permiso para obtener el valor de un secreto.

   ```
   {
       "Effect": "Allow",
       "Action": [
           "secretsmanager:GetSecretValue"
       ],
       "Resource": [
           "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyGreengrassSecret-abcdef"
       ]
   }
   ```

   Para obtener más información, consulte [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md).

1. Vuelve a aplicar la implementación al dispositivo principal. Realice una de las siguientes acciones:
   + Revise la implementación sin cambios. El dispositivo principal intenta volver a descargar el secreto cuando recibe la implementación revisada. Para obtener más información, consulte [Revisión de las implementaciones](revise-deployments.md).
   + Reinicie el software AWS IoT Greengrass principal para volver a intentar la implementación. Para obtener más información, consulte [Ejecute el software AWS IoT Greengrass principal](run-greengrass-core-v2.md)

   La implementación se realiza correctamente si el administrador de secretos descarga el secreto correctamente.

### software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException: Access to KMS is not allowed
<a name="secret-manager-error-no-kms-access"></a>

Este error puede producirse cuando se utiliza el [componente de administrador de secretos](secret-manager-component.md) para implementar un AWS Secrets Manager secreto cifrado mediante una AWS Key Management Service clave. Si el [rol de IAM de intercambio de token](device-service-role.md) del dispositivo principal no otorga permiso para descifrar el secreto, la implementación falla y los registros de Greengrass incluyen este error.

Para solucionar el problema, agregue el permiso `kms:Decrypt` al rol de intercambio de token del dispositivo principal. Para obtener más información, consulte los siguientes temas:
+ [Cifrado y descifrado de secretos ](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html) en la *Guía del usuario de AWS Secrets Manager *
+ [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md)

### java.lang.NoClassDefFoundError: com/aws/greengrass/security/CryptoKeySpi
<a name="hardware-security-incompatible-nucleus-version"></a>

Es posible que veas este error cuando intentes instalar el software AWS IoT Greengrass Core con [seguridad de hardware](hardware-security.md) y utilices una versión anterior del núcleo de Greengrass que no admite la integración de seguridad de hardware. Para usar la integración de seguridad de hardware, debe usar el núcleo de Greengrass versión 2.5.3 o posterior.

### com.aws.greengrass.security.provider.pkcs11.PKCS11CryptoKeyService: CKR\$1OPERATION\$1NOT\$1INITIALIZED
<a name="ckr-operation-not-initialized"></a>

Es posible que aparezca este error cuando utilice la TPM2 biblioteca cuando ejecute AWS IoT Greengrass Core como un servicio del sistema.

Este error indica que debe agregar una variable de entorno que proporcione la ubicación del almacén PKCS \$111 en el archivo de servicio AWS IoT Greengrass Core systemd. 

Para obtener más información, consulte la sección Requisitos de la documentación del componente [Proveedor PKCS\$111](pkcs11-provider-component.md).

### Greengrass core device stuck on nucleus v2.12.3
<a name="v2.12.3-revise-deployment"></a>

Si su dispositivo principal de Greengrass no revisa la implementación de la versión 2.12.3 de núcleo, es posible que tenga que descargar y reemplazar el archivo `Greengrass.jar` por la versión 2.12.2 del núcleo de Greengrass. Haga lo siguiente:

1. Ejecute el siguiente comando en su dispositivo principal de Greengrass para detener el software de Greengrass Core.

------
#### [ Linux or Unix ]

   ```
   sudo systemctl stop greengrass
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   sc stop "greengrass"
   ```

------
#### [ PowerShell ]

   ```
   Stop-Service -Name "greengrass"
   ```

------

1. En su dispositivo principal, descargue el AWS IoT Greengrass software a un archivo denominado. `greengrass-2.12.2.zip`

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-2.12.2.zip > greengrass-2.12.2.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-2.12.2.zip > greengrass-2.12.2.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-2.12.2.zip -OutFile greengrass-2.12.2.zip
   ```

------

1. Descomprime el software AWS IoT Greengrass principal en una carpeta de tu dispositivo. *GreengrassInstaller*Sustitúyalo por la carpeta que desee usar.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-2.12.2.zip -d GreengrassInstaller && rm greengrass-2.12.2.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-2.12.2.zip -C GreengrassInstaller && del greengrass-2.12.2.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-2.12.2.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-2.12.2.zip
   ```

------

1. Ejecute el siguiente comando para anular el archivo JAR de Greengrass de la versión 2.12.3 del núcleo por el archivo JAR de Greengrass de la versión 2.12.2 del núcleo.

------
#### [ Linux or Unix ]

   ```
   sudo cp ./GreengrassInstaller/lib/Greengrass.jar /greengrass/v2/packages/artifacts-unarchived/aws.greengrass.Nucleus/2.12.3/aws.greengrass.nucleus/lib
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   robocopy ./GreengrassInstaller/lib/Greengrass.jar /greengrass/v2/packages/artifacts-unarchived/aws.greengrass.Nucleus/2.12.3/aws.greengrass.nucleus/lib /E
   ```

------
#### [ PowerShell ]

   ```
   cp -Path ./GreengrassInstaller/lib/Greengrass.jar -Destination /greengrass/v2/packages/artifacts-unarchived/aws.greengrass.Nucleus/2.12.3/aws.greengrass.nucleus/lib
   ```

------

1. Ejecute el siguiente comando para iniciar el software de Greengrass Core.

------
#### [ Linux or Unix ]

   ```
   sudo systemctl start greengrass
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   sc start "greengrass"
   ```

------
#### [ PowerShell ]

   ```
   Start-Service -Name "greengrass"
   ```

------

### Greengrass nucleus v2.14.0 systemd template issue
<a name="v2.14.0-systemd-template"></a>

Es posible que se encuentre con este problema si ha instalado la versión 2.14.0 del núcleo de Greengrass en un dispositivo Linux con su plantilla de servicio systemd predeterminada. Haga lo siguiente:

1. En su dispositivo principal de Greengrass, ejecute el siguiente comando para revertir el archivo de servicio de systemd a la forma en que estaba en la versión 2.13.0 y versiones anteriores del núcleo.

------
#### [ Linux or Unix ]

   ```
   sudo sed -i 's|ExecStart=/bin/sh -c "\(.*\) >> .*/logs/loader.log 2>&1"|ExecStart=/bin/sh \1|' /etc/systemd/system/greengrass.service
   ```

------

1. Aplique los cambios.

------
#### [ Linux or Unix ]

   ```
   sudo systemctl daemon-reload
   sudo systemctl restart greengrass
   ```

------

## AWS IoT Greengrass problemas con la nube
<a name="greengrass-cloud-issues"></a>

Usa la siguiente información para solucionar problemas con la AWS IoT Greengrass consola y la API. Cada entrada corresponde a un mensaje de error que puede aparecer al realizar una acción.

### An error occurred (AccessDeniedException) when calling the CreateComponentVersion operation: User: arn:aws:iam::123456789012:user/<username> is not authorized to perform: null
<a name="cloud-error-create-component-version-not-authorized-to-perform-null"></a>

Es posible que aparezca este error al crear una versión de componente desde la AWS IoT Greengrass consola o durante la [CreateComponentVersion](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateComponentVersion.html)operación.

Este error indica que su receta no es válida en formato JSON o YAML. Compruebe la sintaxis de su receta, corrija cualquier problema de sintaxis e inténtelo de nuevo. Puede usar un corrector de sintaxis JSON o YAML en línea para identificar los problemas de sintaxis en su receta.

### Invalid Input: Encountered following errors in Artifacts: \$1<s3ArtifactUri> = Specified artifact resource cannot be accessed\$1
<a name="cloud-error-specified-artifact-resource-cannot-be-accessed"></a>

Es posible que aparezca este error al crear una versión de componente desde la AWS IoT Greengrass consola o durante la [CreateComponentVersion](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateComponentVersion.html)operación. Este error indica que un artefacto de S3 en la receta del componente no es válido.

Haga lo siguiente:
+ Compruebe que el depósito de S3 esté en el mismo Región de AWS lugar en el que creó el componente. AWS IoT Greengrass no admite solicitudes de artefactos de componentes entre regiones.
+ Compruebe que el URI del artefacto es una URL de objeto S3 válida y compruebe que el artefacto existe en esa URL de objeto S3.
+ Comprueba que tienes Cuenta de AWS permiso para acceder al artefacto en la URL del objeto S3.

### INACTIVE deployment status
<a name="cloud-error-inactive-deployment"></a>

Es posible que obtengas un estado de `INACTIVE` implementación cuando llames a la [ListDeployments](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_ListDeployments.html)API sin las AWS IoT políticas dependientes requeridas. Debe tener los permisos necesarios para obtener un estado de implementación preciso. Puede encontrar las acciones dependientes consultando las [acciones definidas por AWS IoT Greengrass V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotgreengrassv2.html#awsiotgreengrassv2-actions-as-permissions) y siguiendo los permisos necesarios para `ListDeployments`. Sin los AWS IoT permisos dependientes necesarios, seguirás viendo el estado de la implementación, pero es posible que veas un estado de implementación incorrecto de`INACTIVE`.

## Problemas de implementación del dispositivo principal
<a name="greengrass-core-deployment-issues"></a>

Solución de problemas en las implementaciones de los dispositivos principales de Greengrass. Cada entrada corresponde a un mensaje de registro que puede que vea en su dispositivo principal.

**Topics**
+ [Error: com.aws.greengrass.componentmanager.exceptions.PackageDownloadException: Failed to download artifact](#core-error-failed-to-download-artifact-package-download-exception)
+ [Error: com.aws.greengrass.componentmanager.exceptions.ArtifactChecksumMismatchException: Integrity check for downloaded artifact failed. Probably due to file corruption.](#core-error-failed-to-download-artifact-checksum-mismatch-exception)
+ [Error: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: Failed to negotiate component <name> version with cloud and no local applicable version satisfying requirement <requirements>](#core-error-no-available-component-version)
+ [software.amazon.awssdk.services.greengrassv2data.model.ResourceNotFoundException: The latest version of Component <componentName> doesn't claim platform <coreDevicePlatform> compatibility](#deployment-error-no-platform-compatibility)
+ [com.aws.greengrass.componentmanager.exceptions.PackagingException: The deployment attempts to update the nucleus from aws.greengrass.Nucleus-<version> to aws.greengrass.Nucleus-<version> but no component of type nucleus was included as target component](#deployment-error-nucleus-minor-version-update)
+ [Error: com.aws.greengrass.deployment.exceptions.DeploymentException: Unable to process deployment. Greengrass launch directory is not set up or Greengrass is not set up as a system service](#deployment-error-unable-to-process-deployment)
+ [Info: com.aws.greengrass.deployment.exceptions.RetryableDeploymentDocumentDownloadException: Greengrass Cloud Service returned an error when getting full deployment configuration](#core-error-getting-full-deployment-configuration)
+ [Warn: com.aws.greengrass.deployment.DeploymentService: Failed to get thing group hierarchy](#core-warning-failed-to-get-thing-group-hierarchy)
+ [Info: com.aws.greengrass.deployment.DeploymentDocumentDownloader: Calling Greengrass cloud to get full deployment configuration](#core-info-repetitive-get-full-deployment-configuration)
+ [Caused by: software.amazon.awssdk.services.greengrassv2data.model.GreengrassV2DataException: null (Service: GreengrassV2Data, Status Code: 403, Request ID: <some\$1request\$1id>, Extended Request ID: null)](#greengrassv2dataexception)

### Error: com.aws.greengrass.componentmanager.exceptions.PackageDownloadException: Failed to download artifact
<a name="core-error-failed-to-download-artifact-package-download-exception"></a>

Es posible que aparezca este error cuando el software AWS IoT Greengrass principal no puede descargar un artefacto componente cuando el dispositivo principal realiza una implementación. La implementación falla como resultado de este error.

Cuando recibe este error, el registro también incluye un rastreo de pila que puede usar para identificar el problema específico. Cada una de las siguientes entradas corresponde a un mensaje que puede que vea en el rastreo de pila del mensaje de error `Failed to download artifact`.

**Topics**
+ [software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 403, Request ID: null, ...)](#core-error-failed-to-download-artifact-s3-permissions)
+ [software.amazon.awssdk.services.s3.model.S3Exception: Access Denied (Service: S3, Status Code: 403, Request ID: <requestID>](#core-error-failed-to-download-artifact-get-bucket-location-403)

#### software.amazon.awssdk.services.s3.model.S3Exception: null (Service: S3, Status Code: 403, Request ID: null, ...)
<a name="core-error-failed-to-download-artifact-s3-permissions"></a>

El [PackageDownloadException error](#core-error-failed-to-download-artifact-package-download-exception) puede incluir este rastreo de pila en los siguientes casos:
+ El artefacto del componente no está disponible en la URL del objeto de S3 que especificó en la receta del componente. Compruebe que ha subido el artefacto al bucket de S3 y que el URI del artefacto coincide con la URL del objeto de S3 del artefacto en el bucket.
+ La [función de intercambio de fichas](device-service-role.md) del dispositivo principal no permite que el software AWS IoT Greengrass principal descargue el artefacto componente desde la URL del objeto S3 que se especifique en la receta del componente. Compruebe que la función de intercambio de token permita `s3:GetObject` de la URL del objeto de S3 en la que el artefacto está disponible.

#### software.amazon.awssdk.services.s3.model.S3Exception: Access Denied (Service: S3, Status Code: 403, Request ID: <requestID>
<a name="core-error-failed-to-download-artifact-get-bucket-location-403"></a>

El [PackageDownloadException error](#core-error-failed-to-download-artifact-package-download-exception) puede incluir este seguimiento de pila cuando el dispositivo principal no tiene permiso para llamar`s3:GetBucketLocation`. El mensaje de error incluye uno de los siguientes mensajes.

```
reason: Failed to determine S3 bucket location
```

Compruebe que el [rol de intercambio de token](device-service-role.md) permita `s3:GetBucketLocation` para el bucket de S3 en la que el artefacto está disponible.

### Error: com.aws.greengrass.componentmanager.exceptions.ArtifactChecksumMismatchException: Integrity check for downloaded artifact failed. Probably due to file corruption.
<a name="core-error-failed-to-download-artifact-checksum-mismatch-exception"></a>

Es posible que aparezca este error cuando el software AWS IoT Greengrass principal no puede descargar un artefacto componente cuando el dispositivo principal realiza una implementación. La implementación falla porque la suma de verificación del archivo de artefactos descargado no coincide con la suma de verificación que AWS IoT Greengrass se calculó al crear el componente.

Haga lo siguiente:
+ Compruebe si el archivo de artefactos ha cambiado en el bucket de S3 donde lo aloja. Si el archivo ha cambiado desde que creó el componente, restáurelo a la versión anterior que esperaba el dispositivo principal. Si no puede restaurar el archivo a su versión anterior o si desea utilizar la nueva versión del archivo, cree una nueva versión del componente con el archivo de artefactos.
+ Compruebe la conexión a Internet del dispositivo principal. Este error puede producirse si el archivo del artefacto se daña mientras se descarga. Cree una implementación nueva e inténtelo de nuevo.

### Error: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: Failed to negotiate component <name> version with cloud and no local applicable version satisfying requirement <requirements>
<a name="core-error-no-available-component-version"></a>

Es posible que aparezca este error cuando un dispositivo principal no encuentre una versión de componente que cumpla con los requisitos de las implementaciones de ese dispositivo principal. El dispositivo principal comprueba el componente en el AWS IoT Greengrass servicio y en el dispositivo local. El mensaje de error incluye el destino de cada implementación y los requisitos de versión de esa implementación para el componente. El destino de la implementación puede ser un objeto, un grupo de objetos o `LOCAL_DEPLOYMENT`, que represente la implementación local en el dispositivo principal.

Este error se puede producir en los siguientes escenarios:
+ El dispositivo principal es el objetivo de varias implementaciones que tienen requisitos de versión de componentes contradictorios. Por ejemplo, el dispositivo principal puede ser el objetivo de varias implementaciones que incluyen un componente `com.example.HelloWorld`, en las que una implementación requiere la versión 1.0.0 y la otra requiere la versión 1.0.1. Es imposible tener un componente que cumpla ambos requisitos, por lo que la implementación falla.
+ La versión del componente no existe en el AWS IoT Greengrass servicio ni en el dispositivo local. Es posible que el componente se haya eliminado, por ejemplo.
+ Existen versiones de componentes que cumplen con los requisitos de la versión, pero ninguna es compatible con la plataforma del dispositivo principal.
+ La AWS IoT política del dispositivo principal no concede el `greengrass:ResolveComponentCandidates` permiso. Busque `Status Code: 403` en el registro de errores para identificar este problema. Para resolver este problema, agregue el permiso `greengrass:ResolveComponentCandidates` a la política AWS IoT del dispositivo principal. Para obtener más información, consulte [AWS IoT Política mínima para los dispositivos AWS IoT Greengrass V2 principales](device-auth.md#greengrass-core-minimal-iot-policy).

Para resolver este problema, revise las implementaciones para incluir versiones de componentes compatibles o eliminar los incompatibles. Para obtener más información sobre cómo revisar las implementaciones en la nube, consulte [Revisión de las implementaciones](revise-deployments.md). Para obtener información sobre cómo revisar implementaciones locales, consulte el comando [Crear implementaciones de la CLI de AWS IoT Greengrass](gg-cli-deployment.md#deployment-create).

### software.amazon.awssdk.services.greengrassv2data.model.ResourceNotFoundException: The latest version of Component <componentName> doesn't claim platform <coreDevicePlatform> compatibility
<a name="deployment-error-no-platform-compatibility"></a>

Es posible que aparezca este error al implementar un componente en un dispositivo principal y el componente no muestre una plataforma que sea compatible con la plataforma del dispositivo principal. Realice una de las siguientes acciones:
+ Si el componente es un componente personalizado de Greengrass, puede actualizarlo para que sea compatible con el dispositivo principal. Agregue un nuevo manifiesto que coincida con la plataforma del dispositivo principal o actualice un manifiesto existente para que coincida con la plataforma del dispositivo principal. Para obtener más información, consulte [AWS IoT Greengrass referencia de recetas de componentes](component-recipe-reference.md).
+ Si el componente lo proporciona AWS, compruebe si otra versión del componente es compatible con el dispositivo principal. Si ninguna versión es compatible, póngase en contacto con nosotros mediante [AWS re:Post](https://repost.aws/) usando la [etiqueta AWS IoT Greengrass](https://repost.aws/tags/TA4ckIed1sR4enZBey29rKTg/aws-io-t-greengrass) o póngase en contacto con [Soporte](https://aws.amazon.com/contact-us/).

### com.aws.greengrass.componentmanager.exceptions.PackagingException: The deployment attempts to update the nucleus from aws.greengrass.Nucleus-<version> to aws.greengrass.Nucleus-<version> but no component of type nucleus was included as target component
<a name="deployment-error-nucleus-minor-version-update"></a>

Es posible que aparezca este error al implementar un componente que depende del [núcleo de Greengrass](greengrass-nucleus-component.md) y el dispositivo principal ejecute una versión del núcleo de Greengrass anterior a la última versión secundaria disponible. Este error se produce porque el software AWS IoT Greengrass principal intenta actualizar automáticamente los componentes a la última versión compatible. Sin embargo, el software AWS IoT Greengrass Core impide que el núcleo de Greengrass se actualice a una nueva versión secundaria, ya que varios de los componentes AWS proporcionados dependen de versiones secundarias específicas del núcleo de Greengrass. Para obtener más información, consulte [Comportamiento de actualización del núcleo de Greengrass](update-greengrass-core-v2.md#ota-update-behavior-nucleus).

Debe [revisar la implementación](revise-deployments.md) para especificar la versión del núcleo de Greengrass que quiere usar. Realice una de las siguientes acciones:
+ Revise la implementación para especificar la versión del núcleo de Greengrass que ejecuta actualmente el dispositivo principal.
+ Revise la implementación para especificar una versión secundaria posterior del núcleo de Greengrass. Si elige esta opción, también debe actualizar las versiones de todos los componentes AWS proporcionados que dependen de versiones secundarias específicas del núcleo de Greengrass. Para obtener más información, consulte [Componentes proporcionados por AWS](public-components.md).

### Error: com.aws.greengrass.deployment.exceptions.DeploymentException: Unable to process deployment. Greengrass launch directory is not set up or Greengrass is not set up as a system service
<a name="deployment-error-unable-to-process-deployment"></a>

Es posible que vea este error cuando mueva un dispositivo de Greengrass de un grupo de objetos a otro y luego de vuelta al grupo original con implementaciones que requieren que Greengrass se reinicie. 

Para resolver este problema, vuelva a crear el directorio de inicio del dispositivo. También recomendamos encarecidamente actualizar el núcleo de Greengrass a la versión 2.9.6 o posterior.

El siguiente es un script de Linux para recrear el directorio de inicio. Guarde el script en un archivo denominado `fix_directory.sh`.

```
#!/bin/bash

set -e

GG_ROOT=$1
GG_VERSION=$2

CURRENT="$GG_ROOT/alts/current"

if [ ! -L "$CURRENT" ]; then
  mkdir -p $GG_ROOT/alts/directory_fix
  echo "Relinking $GG_ROOT/alts/directory_fix to $CURRENT"
  ln -sf $GG_ROOT/alts/directory_fix $CURRENT
fi

TARGET=$(readlink $CURRENT)

if [[ ! -d "$TARGET" ]]; then
  echo "Creating directory: $TARGET"
  mkdir -p "$TARGET"
fi

DISTRO_LINK="$TARGET/distro"
DISTRO="$GG_ROOT/packages/artifacts-unarchived/aws.greengrass.Nucleus/$GG_VERSION/aws.greengrass.nucleus/"
echo "Relinking Nucleus artifacts to $DISTRO_LINK"
ln -sf $DISTRO $DISTRO_LINK
```

Para ejecutar el script, ejecute el siguiente comando:

```
[root@ip-172-31-27-165 ~]# ./fix_directory.sh /greengrass/v2 2.9.5
Relinking /greengrass/v2/alts/directory_fix to /greengrass/v2/alts/current
Relinking Nucleus artifacts to /greengrass/v2/alts/directory_fix/distro
```

### Info: com.aws.greengrass.deployment.exceptions.RetryableDeploymentDocumentDownloadException: Greengrass Cloud Service returned an error when getting full deployment configuration
<a name="core-error-getting-full-deployment-configuration"></a>

Es posible que aparezca este error cuando el dispositivo principal reciba un documento de implementación de gran tamaño, es decir, un documento de implementación de más de 7 KB (en el caso de las implementaciones dirigidas a objetos) o 31 KB (en el caso de las implementaciones dirigidas a grupos de objetos). Para recuperar un documento de despliegue de gran tamaño, la AWS IoT política del dispositivo principal debe permitir el `greengrass:GetDeploymentConfiguration` permiso. Este error puede producirse cuando el dispositivo principal no tiene este permiso. Cuando se produce este error, la implementación se reintenta indefinidamente y su estado es **En curso** (`IN_PROGRESS`).

Para resolver este problema, añade el `greengrass:GetDeploymentConfiguration` permiso a la AWS IoT política del dispositivo principal. Para obtener más información, consulte [Actualice la AWS IoT política de un dispositivo principal](device-auth.md#update-core-device-iot-policy).

### Warn: com.aws.greengrass.deployment.DeploymentService: Failed to get thing group hierarchy
<a name="core-warning-failed-to-get-thing-group-hierarchy"></a>

Es posible que veas esta advertencia cuando el dispositivo principal reciba una implementación y la AWS IoT política del dispositivo principal no permita el `greengrass:ListThingGroupsForCoreDevice` permiso. Cuando crea una implementación, el dispositivo principal usa este permiso para identificar sus grupos de objetos y eliminar componentes de cualquier grupo de objetos que haya eliminado del dispositivo principal. Si el dispositivo principal ejecuta [el núcleo de Greengrass](greengrass-nucleus-component.md) versión 2.5.0, se produce un error en la implementación. Si el dispositivo principal ejecuta el núcleo de Greengrass versión 2.5.1 o posterior, la implementación continúa, pero no elimina los componentes. Para obtener más información acerca de comportamientos de eliminación de grupos de objeto, consulte [Implemente AWS IoT Greengrass componentes en los dispositivos](manage-deployments.md).

Para actualizar el comportamiento del dispositivo principal a fin de eliminar componentes de los grupos de cosas de los que se elimina el dispositivo principal, añada el `greengrass:ListThingGroupsForCoreDevice` permiso a la AWS IoT política del dispositivo principal. Para obtener más información, consulte [Actualice la AWS IoT política de un dispositivo principal](device-auth.md#update-core-device-iot-policy).

### Info: com.aws.greengrass.deployment.DeploymentDocumentDownloader: Calling Greengrass cloud to get full deployment configuration
<a name="core-info-repetitive-get-full-deployment-configuration"></a>

Es posible que vea este mensaje de información impreso varias veces sin ningún error, ya que el dispositivo principal registra el error a nivel de registro `DEBUG`. Este problema puede producirse cuando el dispositivo principal recibe un documento de implementación de gran tamaño. Cuando se produce este error, la implementación se reintenta indefinidamente y su estado es **En curso** (`IN_PROGRESS`). Para obtener más información sobre cómo resolver este problema, consulte [esta entrada de solución de problemas](#core-error-getting-full-deployment-configuration).

### Caused by: software.amazon.awssdk.services.greengrassv2data.model.GreengrassV2DataException: null (Service: GreengrassV2Data, Status Code: 403, Request ID: <some\$1request\$1id>, Extended Request ID: null)
<a name="greengrassv2dataexception"></a>

Es posible que se muestre este error cuando la API de un plano de datos no tiene el permiso `iot:Connect`. Si no tiene la política correcta, recibirá un `GreengrassV2DataException: 403`. Para crear una política de permisos, siga estas instrucciones: [Cree una AWS IoT política](fleet-provisioning-setup.md#create-iot-policy).

## Problemas con los componentes del dispositivo principal
<a name="greengrass-core-component-issues"></a>

Solución de problemas en los componentes de los dispositivos principales de Greengrass.

**Topics**
+ [Warn: '<command>' is not recognized as an internal or external command](#component-warn-command-not-recognized)
+ [El script de Python no registra los mensajes](#python-component-no-log-output)
+ [La configuración de los componentes no se actualiza al cambiar la configuración predeterminada](#update-component-configuration-to-default-configuration)
+ [awsiot.greengrasscoreipc.model.UnauthorizedError](#ipc-unauthorized-error)
+ [com.aws.greengrass.authorization.exceptions.AuthorizationException: Duplicate policy ID "<id>" for principal "<componentList>"](#ipc-duplicate-authorization-policy-ids)
+ [com.aws.greengrass.tes.CredentialRequestHandler: Error in retrieving AwsCredentials from TES (HTTP 400)](#token-exchange-service-credentials-http-400)
+ [com.aws.greengrass.tes.CredentialRequestHandler: Error in retrieving AwsCredentials from TES (HTTP 403)](#token-exchange-service-credentials-http-403)
+ [com.aws.greengrass.tes.CredentialsProviderError: Could not load credentials from any providers](#token-exchange-service-credentials-provider-error)
+ [Received error when attempting to retrieve ECS metadata: Could not connect to the endpoint URL: "<tokenExchangeServiceEndpoint>"](#token-exchange-service-not-running)
+ [copyFrom: <configurationPath> is already a container, not a leaf](#configuration-key-is-container-cannot-become-leaf)
+ [com.aws.greengrass.componentmanager.plugins.docker.exceptions.DockerLoginException: Error logging into the registry using credentials - 'The stub received bad data.'](#docker-login-stub-received-bad-data)
+ [java.io.IOException: Cannot run program "cmd" ...: [LogonUser] The password for this account has expired.](#windows-account-password-expired)
+ [aws.greengrass.StreamManager: Instant exceeds minimum or maximum instant](#stream-manager-instant-exceeds-maximun-minimum)

### Warn: '<command>' is not recognized as an internal or external command
<a name="component-warn-command-not-recognized"></a>

Es posible que veas este error en los registros de un componente de Greengrass cuando el software AWS IoT Greengrass principal no ejecute un comando en el script de ciclo de vida del componente. El estado del componente pasa a ser `BROKEN`, resultado de este error. Este error puede producirse si el usuario del sistema que ejecuta el componente, por ejemplo, `ggc_user`, no encuentra el ejecutable del comando en las carpetas [PATH](https://en.wikipedia.org/wiki/PATH_(variable)).

En los dispositivos Windows, compruebe que la carpeta que contiene el ejecutable pertenece a la `PATH` del sistema que ejecuta el componente. Si no aparece en la `PATH`, realice una de las siguientes opciones:
+ Agregue la carpeta del ejecutable a la variable del sistema `PATH`, que está disponible para todos los usuarios. A continuación, reinicie el componente.

  Si ejecuta Greengrass nucleus 2.5.0, después de actualizar la variable de `PATH` sistema, debe reiniciar el software AWS IoT Greengrass Core para ejecutar los componentes con la actualización. `PATH` Si el software AWS IoT Greengrass principal no utiliza la actualización `PATH` después de reiniciar el software, reinicie el dispositivo e inténtelo de nuevo. Para obtener más información, consulte [Ejecute el software AWS IoT Greengrass principal](run-greengrass-core-v2.md).
+ Agregue la carpeta del ejecutable a la variable de usuario `PATH` del sistema que ejecuta el componente.

### El script de Python no registra los mensajes
<a name="python-component-no-log-output"></a>

Los dispositivos principales de Greengrass recopilan registros que puede utilizar para identificar problemas con los componentes. Si los mensajes del script `stdout` y `stderr` de Python no aparecen en los registros de sus componentes, es posible que deba vaciar el búfer o deshabilitar el almacenamiento en búfer para estos flujos de salida estándar en Python. Realice uno de los siguientes procedimientos:
+ Ejecute Python con el argumento [-u](https://docs.python.org/3/using/cmdline.html#cmdoption-u) para deshabilitar el almacenamiento en búfer en `stdout` y `stderr`.

------
#### [ Linux or Unix ]

  ```
  python3 -u hello_world.py
  ```

------
#### [ Windows ]

  ```
  py -3 -u hello_world.py
  ```

------
+ Utilice [Setenv](component-recipe-reference.md#lifecycle-setenv-definition) en la receta de su componente para establecer la variable de entorno [PYTHONUNBUFFERED](https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUNBUFFERED) en una cadena que no esté vacía. Esta variable de entorno deshabilita el almacenamiento en búfer en `stdout` y `stderr`.
+ Vacíe el búfer de los flujos `stdout` o `stderr`. Realice una de las siguientes acciones:
  + Vacíe un mensaje al imprimirlo.

    ```
    import sys
    
    print('Hello, error!', file=sys.stderr, flush=True)
    ```
  + Vacíe un mensaje después de imprimirlo. Puede enviar varios mensajes antes de vaciar el flujo.

    ```
    import sys
    
    print('Hello, error!', file=sys.stderr)
    sys.stderr.flush()
    ```

Para obtener más información acerca de cómo verificar que el script de Python genera mensajes de registro, consulte [Supervisión de los registros de AWS IoT Greengrass](monitor-logs.md).

### La configuración de los componentes no se actualiza al cambiar la configuración predeterminada
<a name="update-component-configuration-to-default-configuration"></a>

Al cambiar la `DefaultConfiguration` en la receta de un componente, la nueva configuración predeterminada no sustituirá a la configuración existente del componente durante la implementación. Para aplicar la nueva configuración predeterminada, debe restablecer la configuración del componente a sus valores predeterminados. Al implementar el componente, especifique una sola cadena vacía como [restablecimiento de actualización](update-component-configurations.md#reset-configuration-update).

------
#### [ Console ]

**Restablecer las rutas**  

```
[""]
```

------
#### [ AWS CLI ]

El siguiente comando crea una implementación a un dispositivo principal.

```
aws greengrassv2 create-deployment --cli-input-json file://reset-configuration-deployment.json
```

El archivo `reset-configuration-deployment.json` contiene el siguiente documento JSON.

```
{
  "targetArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
  "deploymentName": "Deployment for MyGreengrassCore",
  "components": {
    "com.example.HelloWorld": {
      "componentVersion": "1.0.0",
      "configurationUpdate": {,
        "reset": [""]
      }
    }
  }
}
```

------
#### [ Greengrass CLI ]

El siguiente comando de la [CLI de Greengrass](greengrass-cli-component.md) crea una implementación local en un dispositivo principal.

```
sudo greengrass-cli deployment create \
  --recipeDir recipes \
  --artifactDir artifacts \
  --merge "com.example.HelloWorld=1.0.0" \
  --update-config reset-configuration-deployment.json
```

El archivo `reset-configuration-deployment.json` contiene el siguiente documento JSON.

```
{
  "com.example.HelloWorld": {
    "RESET": [""]
  }
}
```

------

### awsiot.greengrasscoreipc.model.UnauthorizedError
<a name="ipc-unauthorized-error"></a>

Es posible que vea este error en los registros de un componente de Greengrass cuando el componente no tiene permiso para realizar una operación de IPC en un recurso. Para conceder permiso a un componente para llamar a una operación de IPC, defina una política de autorización de IPC en la configuración del componente. Para obtener más información, consulte [Autorización de los componentes para realizar operaciones de IPC](interprocess-communication.md#ipc-authorization-policies).

**sugerencia**  <a name="tip-reset-configuration-to-apply-new-default-configuration"></a>
Si cambia `DefaultConfiguration` en la receta de un componente, debe restablecer la configuración del componente a su nueva configuración predeterminada. Al implementar el componente, especifique una sola cadena vacía como [restablecimiento de actualización](update-component-configurations.md#reset-configuration-update). Para obtener más información, consulte [La configuración de los componentes no se actualiza al cambiar la configuración predeterminada](#update-component-configuration-to-default-configuration).

### com.aws.greengrass.authorization.exceptions.AuthorizationException: Duplicate policy ID "<id>" for principal "<componentList>"
<a name="ipc-duplicate-authorization-policy-ids"></a>

Es posible que aparezca este error si varias políticas de autorización de IPC, incluidos todos los componentes del dispositivo principal, utilizan el mismo identificador de política.

Compruebe las políticas de autorización de IPC de sus componentes, corrija los duplicados e inténtelo de nuevo. Para crear una política única IDs, le recomendamos que combine el nombre del componente, el nombre del servicio de IPC y un contador. Para obtener más información, consulte [Autorización de los componentes para realizar operaciones de IPC](interprocess-communication.md#ipc-authorization-policies).

**sugerencia**  <a name="tip-reset-configuration-to-apply-new-default-configuration"></a>
Si cambia `DefaultConfiguration` en la receta de un componente, debe restablecer la configuración del componente a su nueva configuración predeterminada. Al implementar el componente, especifique una sola cadena vacía como [restablecimiento de actualización](update-component-configurations.md#reset-configuration-update). Para obtener más información, consulte [La configuración de los componentes no se actualiza al cambiar la configuración predeterminada](#update-component-configuration-to-default-configuration).

### com.aws.greengrass.tes.CredentialRequestHandler: Error in retrieving AwsCredentials from TES (HTTP 400)
<a name="token-exchange-service-credentials-http-400"></a>

Es posible que aparezca este error cuando un dispositivo principal no puede obtener AWS las credenciales del [servicio de intercambio de fichas](interact-with-aws-services.md). El código de estado HTTP 400 indica que este error se produjo porque la [función de IAM de intercambio de fichas](device-service-role.md) del dispositivo principal no existe o no tiene una relación de confianza que permita al proveedor de AWS IoT credenciales asumirla.

Haga lo siguiente:

1. Identifique la función de intercambio de token que utiliza el dispositivo principal. El mensaje de error incluye el alias de la AWS IoT función del dispositivo principal, que apunta a la función de intercambio de fichas. Ejecuta el siguiente comando en tu ordenador de desarrollo y *MyGreengrassCoreTokenExchangeRoleAlias* sustitúyelo por el nombre del alias del AWS IoT rol que aparece en el mensaje de error.

   ```
   aws iot describe-role-alias --role-alias MyGreengrassCoreTokenExchangeRoleAlias
   ```

   La respuesta incluye el nombre de recurso de Amazon (ARN) del rol de IAM de intercambio de token.

   ```
   {
     "roleAliasDescription": {
       "roleAlias": "MyGreengrassCoreTokenExchangeRoleAlias",
       "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/MyGreengrassCoreTokenExchangeRoleAlias",
       "roleArn": "arn:aws:iam::123456789012:role/MyGreengrassV2TokenExchangeRole",
       "owner": "123456789012",
       "credentialDurationSeconds": 3600,
       "creationDate": "2021-02-05T16:46:18.042000-08:00",
       "lastModifiedDate": "2021-02-05T16:46:18.042000-08:00"
     }
   }
   ```

1. Compruebe si el rol existe. Ejecuta el siguiente comando y *MyGreengrassV2TokenExchangeRole* sustitúyelo por el nombre del rol de intercambio de fichas.

   ```
   aws iam get-role --role-name MyGreengrassV2TokenExchangeRole
   ```

   Si el comando devuelve un error `NoSuchEntity`, el rol no existe y debe crearlo. Para obtener más información acerca de cómo crear y configurar el rol, consulte [Autorizar a los dispositivos principales a interactuar con AWS los servicios](device-service-role.md).

1. Compruebe que el rol tenga una relación de confianza que permita al proveedor de AWS IoT credenciales asumirlo. La respuesta del paso anterior contiene un `AssumeRolePolicyDocument`, que define las relaciones de confianza del rol. El rol debe definir una relación de confianza que permite a `credentials.iot.amazonaws.com` asumir el rol. Este documento debería verse similar al siguiente ejemplo.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "credentials.iot.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

   Si las relaciones de confianza del rol no permiten asumir `credentials.iot.amazonaws.com`, debe agregar esta relación de confianza al rol. Para obtener más información, consulte [Modificación de un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) en la *Guía del usuario de AWS Identity and Access Management *.

### com.aws.greengrass.tes.CredentialRequestHandler: Error in retrieving AwsCredentials from TES (HTTP 403)
<a name="token-exchange-service-credentials-http-403"></a>

Es posible que aparezca este error cuando un dispositivo principal no puede obtener AWS las credenciales del [servicio de intercambio de fichas](interact-with-aws-services.md). El código de estado HTTP 403 indica que este error se produjo porque las AWS IoT políticas del dispositivo principal no conceden el `iot:AssumeRoleWithCertificate` permiso para el alias de AWS IoT rol del dispositivo principal.

Revisa las AWS IoT políticas del dispositivo principal y añade el `iot:AssumeRoleWithCertificate` permiso para el alias de AWS IoT rol del dispositivo principal. El mensaje de error incluye el alias de AWS IoT rol actual del dispositivo principal. Para obtener más información sobre este permiso y sobre cómo actualizar las AWS IoT políticas del dispositivo principal, consulte [AWS IoT Política mínima para los dispositivos AWS IoT Greengrass V2 principales](device-auth.md#greengrass-core-minimal-iot-policy) y[Actualice la AWS IoT política de un dispositivo principal](device-auth.md#update-core-device-iot-policy).

### com.aws.greengrass.tes.CredentialsProviderError: Could not load credentials from any providers
<a name="token-exchange-service-credentials-provider-error"></a>

Es posible que aparezca este error cuando el componente intente solicitar AWS credenciales y no pueda conectarse al [servicio de intercambio de fichas](interact-with-aws-services.md).

Haga lo siguiente:
+ Compruebe que el componente declara una dependencia del componente del servicio de intercambio de token, `aws.greengrass.TokenExchangeService`. Si no es así, agregue la dependencia y vuelva a implementar el componente.
+ Si el componente se ejecuta en docker, asegúrese de aplicar la configuración de red y las variables de entorno correctas, según [Utilice AWS las credenciales en los componentes del contenedor de Docker (Linux)](run-docker-container.md#docker-container-token-exchange-service).
+ [Si el componente está escrito en Nodejs, defina dns. setDefaultResultOrdene para](https://nodejs.org/docs/latest/api/dns.html#dnssetdefaultresultorderorder). **ipv4first**
+ Compruebe si hay `/etc/hosts` para una entrada que comience por `::1` y contenga `localhost`. Elimine la entrada para ver si provocó que el componente se conectara al servicio de intercambio de token en una dirección incorrecta.

### Received error when attempting to retrieve ECS metadata: Could not connect to the endpoint URL: "<tokenExchangeServiceEndpoint>"
<a name="token-exchange-service-not-running"></a>

Es posible que aparezca este error cuando el componente no ejecuta el [servicio de intercambio de fichas](interact-with-aws-services.md) y un componente intenta solicitar AWS credenciales.

Haga lo siguiente:
+ Compruebe que el componente declara una dependencia del componente del servicio de intercambio de token, `aws.greengrass.TokenExchangeService`. Si no es así, agregue la dependencia y vuelva a implementar el componente.
+ Compruebe si el componente utiliza AWS credenciales `install` durante su ciclo de vida. AWS IoT Greengrass no garantiza la disponibilidad del servicio de intercambio de fichas durante el `install` ciclo de vida. Actualice el componente para trasladar el código que usa las credenciales de AWS en el ciclo de vida `startup` o `run`, a continuación, vuelva a implementar el componente.

### copyFrom: <configurationPath> is already a container, not a leaf
<a name="configuration-key-is-container-cannot-become-leaf"></a>

Es posible que aparezca este error al cambiar un valor de configuración de un tipo de contenedor (una lista o un objeto) a un tipo que no es de contenedor (cadena, número o booleano). Haga lo siguiente:

1. Compruebe la receta del componente para ver si su configuración predeterminada establece ese valor de configuración en una lista o un objeto. Si es así, elimine o cambie ese valor de configuración.

1. Cree una implementación para restablecer ese valor de configuración a su valor predeterminado. Para obtener más información, consulte [Crear implementaciones](create-deployments.md) y [Actualización de las configuraciones de los componentes](update-component-configurations.md).

A continuación, puede establecer ese valor de configuración en una cadena, un número o un booleano.

### com.aws.greengrass.componentmanager.plugins.docker.exceptions.DockerLoginException: Error logging into the registry using credentials - 'The stub received bad data.'
<a name="docker-login-stub-received-bad-data"></a>

Es posible que aparezca este error en los registros del núcleo de Greengrass cuando el [componente administrador de aplicaciones de Docker](docker-application-manager-component.md) intenta descargar una imagen de Docker de un repositorio privado de Amazon Elastic Container Registry (Amazon ECR). Este error se produce si utiliza el [ayudante de credenciales de Docker](https://github.com/docker/docker-credential-helpers) (`docker-credential-wincred`) `wincred`. Como resultado, Amazon ECR no puede almacenar las credenciales de inicio de sesión.

Realice una de las siguientes acciones:
+ Si no utiliza el ayudante de credenciales de Docker `wincred`, elimine el programa `docker-credential-wincred` del dispositivo principal.
+ Si utiliza el ayudante de credenciales de Docker `wincred`, haga lo siguiente:

  1. Cambie el nombre del programa `docker-credential-wincred` en el dispositivo principal. Sustituya `wincred` por un nombre nuevo para el ayudante de credenciales de Docker de Windows. Por ejemplo, puede cambiarle el nombre a `docker-credential-wincredreal`.

  1. Actualice la opción `credsStore` en el archivo de configuración de Docker (`.docker/config.json`) para usar el nuevo nombre del ayudante de credenciales de Docker de Windows. Por ejemplo, si ha cambiado el nombre del programa a `docker-credential-wincredreal`, actualice la opción `credsStore` a `wincredreal`.

     ```
     {
       "credsStore": "wincredreal"
     }
     ```

### java.io.IOException: Cannot run program "cmd" ...: [LogonUser] The password for this account has expired.
<a name="windows-account-password-expired"></a>

Es posible que aparezca este error en un dispositivo principal de Windows cuando el usuario del sistema que ejecuta los procesos del componente, por ejemplo `ggc_user`, tiene una contraseña caducada. Como resultado, el software AWS IoT Greengrass Core no puede ejecutar los procesos de los componentes como ese usuario del sistema.

**Cómo actualizar la contraseña de un usuario del sistema de Greengrass**

1. Ejecute el siguiente comando como administrador para establecer la contraseña del usuario. *ggc\$1user*Sustitúyalo por el usuario del sistema y *password* sustitúyalo por la contraseña que desee configurar.

   ```
   net user ggc_user password
   ```

1. Utilice la [PsExec utilidad](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) para almacenar la nueva contraseña del usuario en la instancia de Credential Manager de la LocalSystem cuenta. *password*Sustitúyala por la contraseña de usuario que hayas establecido.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

**sugerencia**  <a name="windows-password-expiration-tip"></a>
Según su configuración de Windows, es posible que la contraseña del usuario caduque en una fecha futura. Para garantizar que sus aplicaciones de Greengrass sigan funcionando, controle cuándo caduca la contraseña y actualícela antes de que caduque. También puede configurar la contraseña del usuario para que nunca caduque.  
Para comprobar cuándo caducan un usuario y su contraseña, ejecute el siguiente comando.  

  ```
  net user ggc_user | findstr /C:expires
  ```
Para configurar la contraseña de un usuario para que no caduque nunca, ejecute el siguiente comando.  

  ```
  wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
  ```
Si utilizas Windows 10 o una versión posterior, donde el [`wmic`comando está en desuso](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), ejecuta el siguiente PowerShell comando.  

  ```
  Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
  ```

### aws.greengrass.StreamManager: Instant exceeds minimum or maximum instant
<a name="stream-manager-instant-exceeds-maximun-minimum"></a>

Al actualizar la versión 2.0.7 del administrador de flujos a una versión entre la versión 2.0.8 y la versión 2.0.11, es posible que aparezca el siguiente error en los registros del componente administrador de flujos si el componente no se inicia. 

```
2021-07-16T00:54:58.568Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. Caused by: com.fasterxml.jackson.databind.JsonMappingException: Instant exceeds minimum or maximum instant (through reference chain: com.amazonaws.iot.greengrass.streammanager.export.PersistedSuccessExportStatesV1["lastExportTime"]). {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=STARTING}
2021-07-16T00:54:58.579Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. Caused by: java.time.DateTimeException: Instant exceeds minimum or maximum instant. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=STARTING}
```

Si implementó el administrador de flujos versión 2.0.7 y desea actualizar a una versión posterior, debe actualizar al administrador de flujos versión 2.0.12 directamente. Para obtener más información sobre el componente administrador de flujos, consulte [Administrador de flujos](stream-manager-component.md).

## Problemas con los componentes de la función de Lambda del dispositivo principal
<a name="greengrass-core-lambda-function-issues"></a>

Solución de problemas con los componentes de la función de Lambda en los dispositivos principales.

**Topics**
+ [The following cgroup subsystems are not mounted: devices, memory](#lambda-cgroups-not-mounted)
+ [ipc\$1client.py:64,HTTP Error 400:Bad Request, b'No subscription exists for the source <label-or-lambda-arn> and subject <label-or-lambda-arn>](#v1-lambda-no-subscription-exists)

### The following cgroup subsystems are not mounted: devices, memory
<a name="lambda-cgroups-not-mounted"></a>

Es posible que vea este error al ejecutar una función de Lambda en contenedores en los siguientes casos:
+ El dispositivo principal no tiene cgroup v1 activado para la memoria o los cgroups del dispositivo.
+ El dispositivo principal tiene habilitada la versión 2 de cgroups. Las funciones de Lambda de Greengrass requieren cgroups v1 y los cgroups v1 y v2 se excluyen mutuamente.

Para habilitar cgroups v1, inicie el dispositivo con los siguientes parámetros del kernel de Linux.

```
cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
```

**sugerencia**  
En una Raspberry Pi, edite el archivo `/boot/cmdline.txt` para configurar los parámetros del núcleo del dispositivo.

### ipc\$1client.py:64,HTTP Error 400:Bad Request, b'No subscription exists for the source <label-or-lambda-arn> and subject <label-or-lambda-arn>
<a name="v1-lambda-no-subscription-exists"></a>

Es posible que aparezca este error al ejecutar una función Lambda de la versión 1, que utiliza el SDK AWS IoT Greengrass principal, en un dispositivo principal de la versión 2 sin especificar una suscripción en el componente del [router de suscripciones anterior](legacy-subscription-router-component.md). Para solucionar este problema, implemente y configure el enrutador de suscripciones antiguo para especificar las suscripciones necesarias. Para obtener más información, consulte [Cómo importar una función de Lambda V1](set-up-v2-test-device.md#run-v1-lambda-functions).

## Versión del componente descontinuada
<a name="discontinued-component-version"></a>

Es posible que vea una notificación en su panel de estado personal (PHD) cuando se deje de fabricar una versión de un componente de su dispositivo principal. La versión del componente envía esta notificación a su PHD en un plazo de 60 minutos desde su descontinuación.

Para ver qué implementaciones necesita revisar, haga lo siguiente mediante la AWS Command Line Interface:

1. Ejecute el siguiente comando para obtener una lista de sus dispositivos principales.

   ```
   aws greengrassv2 list-core-devices
   ```

1. Ejecute el siguiente comando para recuperar el estado de los componentes en cada dispositivo principal del Paso 1. Reemplace `coreDeviceName` con el nombre de cada dispositivo principal para consultar.

   ```
   aws greengrassv2 list-installed-components --core-device-thing-name coreDeviceName
   ```

1. Reúna los dispositivos principales con la versión de componentes discontinuada instalada en los pasos anteriores.

1. Ejecute el siguiente comando para recuperar el estado de todos los trabajos de implementación para un dispositivo principal del Paso 3. Reemplace `coreDeviceName` por el nombre del dispositivo principal que se va a consultar.

   ```
   aws greengrassv2 list-effective-deployments --core-device-thing-name coreDeviceName
   ```

   La respuesta contiene la lista de trabajos de implementación para el dispositivo principal. Puede revisar la implementación para elegir otra versión del componente. Para obtener información sobre cómo revisar las implementaciones, consulte [Revisar las implementaciones](https://docs.aws.amazon.com/greengrass/v2/developerguide/revise-deployments.html).

## Problemas con la interfaz de la línea de comandos de Greengrass
<a name="greengrass-cli-issues"></a>

Solucionar problemas con la [CLI de Greengrass](gg-cli.md).

**Topics**
+ [java.lang.RuntimeException: Unable to create ipc client](#greengrass-cli-unable-to-create-ipc-client)

### java.lang.RuntimeException: Unable to create ipc client
<a name="greengrass-cli-unable-to-create-ipc-client"></a>

Es posible que vea este error al ejecutar un comando de la CLI de Greengrass y especificar una carpeta raíz diferente a la que está instalado el software AWS IoT Greengrass principal.

Realice una de las siguientes acciones para establecer la ruta raíz y `/greengrass/v2` sustitúyala por la ruta a la instalación del software AWS IoT Greengrass principal:<a name="greengrass-cli-set-root-path"></a>
+ Establezca la variable de entorno `GGC_ROOT_PATH` en `/greengrass/v2`.
+ Agregue los argumentos `--ggcRootPath /greengrass/v2` a su comando como se muestra en el siguiente ejemplo.

  ```
  greengrass-cli --ggcRootPath /greengrass/v2 <command> <subcommand> [arguments]
  ```

## AWS Command Line Interface problemas
<a name="aws-cli-issues"></a>

Solucionar AWS CLI problemas para. AWS IoT Greengrass V2

**Topics**
+ [Error: Invalid choice: 'greengrassv2'](#aws-cli-invalid-choice-greengrassv2)

### Error: Invalid choice: 'greengrassv2'
<a name="aws-cli-invalid-choice-greengrassv2"></a>

Es posible que aparezca este error al ejecutar un AWS IoT Greengrass V2 comando con AWS CLI (por ejemplo,`aws greengrassv2 list-core-devices`).

Este error indica que tienes una versión de la AWS CLI que no es compatible AWS IoT Greengrass V2. Para AWS IoT Greengrass V2 utilizarla con AWS CLI, debe tener una de las siguientes versiones o una posterior:<a name="minimum-aws-cli-versions"></a>
+ Versión AWS CLI V1 mínima: v1.18.197
+ Versión AWS CLI V2 mínima: v2.1.11

**sugerencia**  <a name="tip-check-aws-cli-version"></a>
Puede ejecutar el siguiente comando para comprobar la versión de la AWS CLI que dispone.  

```
aws --version
```

Para resolver este problema, actualícelo AWS CLI a una versión posterior que sea compatible AWS IoT Greengrass V2. Para obtener más información, consulte [Instalar, actualizar y desinstalar la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) en la *Guía del usuario de AWS Command Line Interface *.

# Códigos de error de implementación detallados
<a name="troubleshooting-deployment"></a>

Utilice los códigos de error y las soluciones de estas secciones para ayudar a resolver problemas con la implementación de componentes al utilizar el núcleo de Greengrass versión 2.8.0 o posterior.

El núcleo de Greengrass informa los errores de implementación como una jerarquía desde el código menos específico hasta el más específico disponible. Puede utilizar esta jerarquía para determinar el motivo de un error de implementación. Por ejemplo, la siguiente es una posible jerarquía de errores:
+ DEPLOYMENT\$1FAILURE
  + ARTIFACT\$1DOWNLOAD\$1ERROR
    + IO\$1ERROR
      + DISK\$1SPACE\$1CRITICAL

Los códigos de error se organizan en tipos. Cada tipo representa una clase de errores que pueden producirse. AWS IoT Greengrass informa de estos tipos de errores en la consola, la API y AWS CLI. Puede haber más de un tipo de error, según los errores informados en la jerarquía de errores. En el ejemplo anterior, el tipo de error devuelto es `DEVICE_ERROR`.

Los tipos son:
+ **PERMISSION\$1ERROR**: se denegó el acceso a una operación que requiere permiso.
+ **REQUEST\$1ERROR**: se ha producido un error debido a un problema en el documento de implementación.
+ **COMPONENT\$1RECIPE\$1ERROR**: se ha producido un error debido a un problema en la receta de un componente.
+ **AWS\$1COMPONENT\$1ERROR**: se produjo un error al iniciar o eliminar un componente AWS proporcionado.
+ **USER\$1COMPONENT\$1ERROR**: se produjo un error al iniciar o eliminar un componente de usuario.
+ **COMPONENT\$1ERROR**: se produjo un error al iniciar o eliminar un componente, pero el núcleo de Greengrass no pudo determinar si el componente es un componente proporcionado por AWS o un componente de usuario.
+ **DEVICE\$1ERROR — Se** ha producido un error en el dispositivo local I/O o en otro dispositivo.
+ **DEPENDENCY\$1ERROR**: una implementación no pudo descargar un artefacto de Amazon S3 ni extraer una imagen de un registro de ECR.
+ **HTTP\$1ERROR**: se ha producido un error con una solicitud HTTP.
+ **NETWORK\$1ERROR**: se ha producido un error en la red del dispositivo.
+ **NUCLEUS\$1ERROR**: el núcleo de Greengrass no pudo localizar un componente o no pudo encontrar la versión del núcleo activo.
+ **SERVER\$1ERROR**: un servidor devolvió un error 500 en respuesta a una solicitud.
+ **CLOUD\$1SERVICE\$1ERROR**: se ha producido un error en el servicio en la nube de AWS IoT Greengrass .
+ **UNKNOWN\$1ERROR**: el componente lanzó una excepción no comprobada.

Muchos de los errores de esta sección contienen información adicional en los AWS IoT Greengrass registros principales. Estos registros se almacenan en el sistema de archivos local del dispositivo principal. Hay registros para el software AWS IoT Greengrass principal y para cada componente individual. Para obtener información sobre cómo acceder a los registros, consulte [Acceso a los registros del sistema de archivos](monitor-logs.md#access-local-logs).

## Error de permiso
<a name="permission-error"></a>

ACCESS\$1DENIED  
Es posible que aparezca este error cuando una operación de AWS servicio devuelva un error 403 porque los permisos no están configurados correctamente. Consulte el código de error más específico para obtener más información.

GET\$1DEPLOYMENT\$1CONFIGURATION\$1ACCESS\$1DENIED  
Es posible que aparezca este error cuando la AWS IoT política no permita llamar a la `GetDeploymentConfiguration` operación. Agregue el permiso `greengrass::GetDeploymentConfiguration` a la política del dispositivo principal.

GET\$1COMPONENT\$1VERSION\$1ARTIFACT\$1ACCESS\$1DENIED  
Es posible que aparezca este error cuando la AWS IoT política principal de dispositivos no permita el `greengrass:GetComponentVersionArtifact` permiso. Agregue el permiso a la política del dispositivo principal.

RESOLVE\$1COMPONENT\$1CANDIDATES\$1ACCESS\$1DENIED  
Es posible que aparezca este error si la AWS IoT política de dispositivos principales no permite el `greengrass:ResolveComponentCandidates` permiso. Agregue el permiso a la política del dispositivo principal.

GET\$1ECR\$1CREDENTIAL\$1ERROR  
Es posible que aparezca este error cuando la implementación no se pueda autenticar con un registro privado en ECR. Compruebe el registro para ver si hay un error específico y, a continuación, vuelva a intentar la implementación.

USER\$1NOT\$1AUTHORIZED\$1FOR\$1DOCKER  
Es posible que aparezca este error cuando el usuario de Greengrass no esté autorizado a usar Docker. Asegúrese de ejecutar Greengrass como raíz o de que el usuario esté agregado al grupo `docker`. A continuación, intente la implementación de nuevo.

S3\$1ACCESS\$1DENIED  
Es posible que aparezca este error cuando una operación de Amazon S3 devuelva un error 403. Compruebe los códigos o registros de error adicionales para obtener más información.

S3\$1HEAD\$1OBJECT\$1ACCESS\$1DENIED  
Es posible que aparezca este error cuando la función de intercambio de token del dispositivo no permita que el software AWS IoT Greengrass Core descargue el artefacto componente desde la URL del objeto de S3 que especificó en la receta del componente o cuando el artefacto componente no está disponible. Compruebe que el rol de intercambio de token permita `s3:GetObject` de la URL del objeto de S3 en la que el artefacto está disponible y que el artefacto está presente.

S3\$1GET\$1BUCKET\$1LOCATION\$1ACCESS\$1DENIED  
Es posible que aparezca este error cuando el rol de intercambio de token del dispositivo no conceda el permiso `s3:GetBucketLocation` para el bucket de Amazon S3 en el que está disponible el artefacto. Compruebe que el dispositivo concede el permiso y, a continuación, vuelva a intentar la implementación.

S3\$1GET\$1OBJECT\$1ACCESS\$1DENIED  
Es posible que aparezca este error cuando la función de intercambio de token del dispositivo no permita que el software AWS IoT Greengrass Core descargue el artefacto componente desde la URL del objeto de S3 que especificó en la receta del componente o cuando el artefacto componente no está disponible. Compruebe que el rol de intercambio de token permita `s3:GetObject` de la URL del objeto de S3 en la que el artefacto está disponible y que el artefacto está presente.

## Error de solicitud
<a name="request-error"></a>

NUCLEUS\$1MISSING\$1REQUIRED\$1CAPABILITIES  
Es posible que reciba este error cuando la versión del núcleo en la implementación no puede realizar una operación solicitada, como descargar una configuración grande o establecer límites de recursos de Linux. Vuelva a intentar la implementación con una versión de núcleo que sea compatible con la operación.

MULTIPLE\$1NUCLEUS\$1RESOLVED\$1ERROR  
Es posible que aparezca este error cuando una implementación intenta implementar varios componentes del núcleo. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

COMPONENT\$1CIRCULAR\$1DEPENDENCY\$1ERROR  
Es posible que aparezca este error cuando dos componentes de la implementación dependen uno del otro. Revise la configuración de los componentes para que los componentes de la implementación no dependan unos de otros. 

UNAUTHORIZED\$1NUCLEUS\$1MINOR\$1VERSION\$1UPDATE  
Es posible que aparezca este error cuando un componente de su implementación requiera una actualización de la versión secundaria del núcleo, pero esa versión no esté especificada en la implementación. Esto ayuda a reducir las actualizaciones accidentales de versiones secundarias para los componentes que dependen de una versión diferente. Incluya la nueva versión secundaria del núcleo en la implementación.

MISSING\$1DOCKER\$1APPLICATION\$1MANAGER  
Es posible que aparezca este error al implementar un componente de Docker sin implementar el administrador de aplicaciones de Docker. Asegúrese de que su implementación incluya el administrador de aplicaciones de Docker.

MISSING\$1TOKEN\$1EXCHANGE\$1SERVICE  
Es posible que aparezca este error cuando la implementación quiera descargar un artefacto de imagen de Docker de un registro ECR privado sin implementar el servicio de intercambio de token. Asegúrese de que su implementación incluya el servicio de intercambio de token.

COMPONENT\$1VERSION\$1REQUIREMENTS\$1NOT\$1MET  
Es posible que aparezca este error cuando haya un conflicto de restricciones de versión o no exista una versión de un componente. Para obtener más información, consulte [Error: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: Failed to negotiate component <name> version with cloud and no local applicable version satisfying requirement <requirements>](troubleshooting.md#core-error-no-available-component-version).

THROTTLING\$1ERROR  
Es posible que aparezca este error cuando una operación AWS de servicio supere una cuota tarifaria. Reintente la implementación.

CONFLICTED\$1REQUEST  
Este error puede aparecer cuando una operación de AWS servicio devuelve un error 409 porque la implementación intenta realizar más de una operación a la vez. Reintente la implementación.

RESOURCE\$1NOT\$1FOUND  
Es posible que aparezca este error cuando una operación de AWS servicio devuelva un error 404 porque no se pudo encontrar un recurso. Compruebe el recurso que falta en el registro.

RUN\$1WITH\$1CONFIG\$1NOT\$1VALID  
Es posible que aparezca este error cuando la información `posixUser`, `posixGroup` o `windowsUser` especificada para ejecutar el componente no sea válida. Compruebe que el usuario es válido y, a continuación, vuelva a intentar la implementación.

UNSUPPORTED\$1REGION  
Es posible que aparezca este error si la región especificada para la implementación no es compatible con AWS IoT Greengrass. Compruebe la región y vuelva a intentar la implementación.

IOT\$1CRED\$1ENDPOINT\$1NOT\$1VALID  
Es posible que aparezca este error cuando el punto final de AWS IoT credenciales especificado en la configuración no sea válido. Compruebe el punto de conexión e intente realizar la solicitud de nuevo.

IOT\$1DATA\$1ENDPOINT\$1NOT\$1VALID  
Es posible que aparezca este error cuando el punto final de AWS IoT datos especificado en la configuración no sea válido. Compruebe el punto de conexión e intente realizar la solicitud de nuevo.

S3\$1HEAD\$1OBJECT\$1RESOURCE\$1NOT\$1FOUND  
Es posible que aparezca este error cuando el artefacto del componente no esté disponible en la URL del objeto de S3 que especificó en la receta del componente. Compruebe que ha subido el artefacto al bucket de S3 y que el URI del artefacto coincide con la URL del objeto de S3 del artefacto en el bucket.

S3\$1GET\$1BUCKET\$1LOCATION\$1RESOURCE\$1NOT\$1FOUND  
Es posible que este error se produzca cuando no encuentre el bucket de Amazon S3. Compruebe que el bucket existe y vuelva a intentar la implementación.

S3\$1GET\$1OBJECT\$1RESOURCE\$1NOT\$1FOUND  
Es posible que aparezca este error cuando el artefacto del componente no esté disponible en la URL del objeto de S3 que especificó en la receta del componente. Compruebe que ha subido el artefacto al bucket de S3 y que el URI del artefacto coincide con la URL del objeto de S3 del artefacto en el bucket.

IO\$1MAPPING\$1ERROR  
Es posible que aparezca este error cuando se produce un I/O error al analizar el documento o la receta de implementación. Compruebe los códigos o registros de error adicionales para obtener más información.

## Error en la receta del componente
<a name="component-recipe-error"></a>

RECIPE\$1PARSE\$1ERROR  
Es posible que aparezca este error si no se ha podido analizar la receta de implementación porque hay un error en la estructura de la receta. Compruebe que la receta tiene el formato correcto y vuelva a intentar la implementación.

RECIPE\$1METADATA\$1PARSE\$1ERROR  
Es posible que aparezca este error cuando no se hayan podido analizar los metadatos de la receta de implementación descargados de la nube. Contacto Soporte.

ARTIFACT\$1URI\$1NOT\$1VALID  
Es posible que aparezca este error cuando el URI de un artefacto de una receta no tenga el formato correcto. Compruebe en el registro el URI que no es válido, actualice el URI en la receta y vuelva a intentar la implementación.

S3\$1ARTIFACT\$1URI\$1NOT\$1VALID  
Es posible que aparezca este error cuando el URI de Amazon S3 de un artefacto en una receta no sea válido. Compruebe en el registro el URI que no es válido, actualice el URI en la receta y vuelva a intentar la implementación.

DOCKER\$1ARTIFACT\$1URI\$1NOT\$1VALID  
Es posible que reciba este error cuando el URI de Docker de un artefacto en una receta no es válido. Compruebe en el registro el URI que no es válido, actualice el URI en la receta y vuelva a intentar la implementación.

EMPTY\$1ARTIFACT\$1URI  
Es posible que reciba este error cuando el URI de un artefacto en una receta no está especificado. Compruebe el registro en busca del artefacto al que le falta un URI, actualice el URI en la receta y luego intente la implementación nuevamente.

EMPTY\$1ARTIFACT\$1SCHEME  
Es posible que aparezca este error cuando no se haya definido un esquema de URI para un artefacto. Compruebe en el registro el URI que no es válido, actualice el URI en la receta y vuelva a intentar la implementación.

UNSUPPORTED\$1ARTIFACT\$1SCHEME  
Es posible que aparezca este error cuando la versión de núcleo en ejecución no admite un esquema de URI. Un URI no es válido o necesita actualizar la versión de núcleo. Si el URI no es válido, verifique el registro en busca del URI que no es válido, actualice el URI en la receta y, luego, intente la implementación nuevamente.

RECIPE\$1MISSING\$1MANIFEST  
Es posible que aparezca este error cuando la sección del manifiesto no esté incluida en la receta. Agregue el manifiesto a la receta y vuelva a intentar la implementación.

RECIPE\$1MISSING\$1ARTIFACT\$1HASH\$1ALGORITHM  
Es posible que aparezca este error cuando se especifica un artefacto que no es local dentro de una receta sin un algoritmo hash. Agregue el algoritmo al artefacto y, a continuación, vuelva a realizar la solicitud.

ARTIFACT\$1CHECKSUM\$1MISMATCH  
Es posible que aparezca este error cuando un artefacto descargado tenga un resumen diferente al especificado en la receta. Asegúrese de que la receta contiene el resumen correcto y, a continuación, vuelva a intentar la implementación. Para obtener más información, consulte [Error: com.aws.greengrass.componentmanager.exceptions.ArtifactChecksumMismatchException: Integrity check for downloaded artifact failed. Probably due to file corruption.](troubleshooting.md#core-error-failed-to-download-artifact-checksum-mismatch-exception).

COMPONENT\$1DEPENDENCY\$1NOT\$1VALID  
Es posible que aparezca este error cuando el tipo de dependencia especificado en una receta de implementación no sea válido. Compruebe la receta y vuelva a realizar la solicitud de nuevo.

CONFIG\$1INTERPOLATE\$1ERROR  
Es posible que aparezca este error al interpolar una variable de receta. Compruebe el registro para obtener más detalles.

IO\$1MAPPING\$1ERROR  
Es posible que aparezca este error cuando se produce un I/O error al analizar el documento o la receta de despliegue. Compruebe los códigos o registros de error adicionales para obtener más información.

## AWS error de componente, error de componente de usuario, error de componente
<a name="component-error"></a>

Los siguientes códigos de error se devuelven cuando hay un problema con un componente. El tipo de error real informado depende del componente específico que generó el error. Si el núcleo de Greengrass identifica el componente como uno proporcionado por AWS IoT Greengrass, regresa. `AWS_COMPONENT_ERROR` Si el componente se identifica como un componente de usuario, el núcleo de Greengrass devuelve `USER_COMPONENT_ERROR`. Si el núcleo de Greengrass no puede identificarlo, devuelve `COMPONENT_ERROR`.

COMPONENT\$1UPDATE\$1ERROR  
Es posible que aparezca este error cuando un componente no se actualice durante una implementación. Compruebe los códigos de error adicionales o consulte el registro para ver la causa del error.

COMPONENT\$1BROKEN  
Es posible que aparezca este error cuando un componente se rompe durante una implementación. Compruebe el registro de componentes para ver los detalles del error y, a continuación, vuelva a intentar la implementación.

REMOVE\$1COMPONENT\$1ERROR  
Es posible que aparezca este error cuando el núcleo no puede eliminar un componente durante una implementación. Compruebe el registro para ver los detalles del error y, a continuación, vuelva a intentar la implementación.

COMPONENT\$1BOOTSTRAP\$1TIMEOUT  
Es posible que reciba este error cuando la tarea de arranque de un componente tarde más que el tiempo de espera configurado. Aumente el tiempo de espera o reduzca el tiempo de ejecución de la tarea de arranque y, a continuación, vuelva a intentar la implementación.

COMPONENT\$1BOOTSTRAP\$1ERROR  
Es posible que aparezca este error cuando la tarea de arranque de un componente tiene un error. Revise el registro para ver los detalles del error y, luego, intente la implementación nuevamente.

COMPONENT\$1CONFIGURATION\$1NOT\$1VALID  
Es posible que aparezca este error cuando el núcleo no pueda validar la configuración implementada para el componente. Revise el registro para ver los detalles del error y, luego, intente la implementación nuevamente.

## Error del dispositivo
<a name="device-error"></a>

IO\$1WRITE\$1ERROR  
Es posible que aparezca este error al escribir en un archivo. Compruebe el registro para obtener más detalles.

IO\$1READ\$1ERROR  
Es posible que aparezca este error al leer un archivo. Compruebe el registro para obtener más detalles.

DISK\$1SPACE\$1CRITICAL  
Es posible que aparezca este error cuando no hay suficiente espacio en el disco para completar una solicitud de implementación. Debe tener al menos 20 Mb de espacio disponible o suficiente para guardar un artefacto más grande. Libere espacio en el disco e intente realizar la implementación de nuevo.

IO\$1FILE\$1ATTRIBUTE\$1ERROR  
Es posible que aparezca este error cuando el tamaño del archivo existente no se pueda recuperar del sistema de archivos. Compruebe el registro para obtener más detalles.

SET\$1PERMISSION\$1ERROR  
Es posible que aparezca este error cuando no se puedan establecer los permisos en un artefacto o directorio de artefactos descargado. Compruebe el registro para obtener más detalles.

IO\$1UNZIP\$1ERROR  
Es posible que aparezca este error cuando no se pueda descomprimir un artefacto. Compruebe el registro para obtener más detalles.

LOCAL\$1RECIPE\$1NOT\$1FOUND  
Es posible que aparezca este error si no se encuentra la copia local del archivo de una receta. Vuelva a intentar la implementación.

LOCAL\$1RECIPE\$1CORRUPTED  
Es posible que aparezca este error si la copia local de la receta ha cambiado desde que se descargó. Elimine la copia existente de la receta y vuelva a intentar la implementación.

LOCAL\$1RECIPE\$1METADATA\$1NOT\$1FOUND  
Es posible que reciba este error cuando no se pueda encontrar la copia local del archivo de metadatos de la receta. Vuelva a intentar la implementación.

LAUNCH\$1DIRECTORY\$1CORRUPTED  
Es posible que aparezca este error si el directorio utilizado para lanzar el núcleo de Greengrass (`/greengrass/v2/alts/current`) se ha modificado desde la última vez que se inició el núcleo. Reinicie el núcleo y, a continuación, vuelva a intentar la implementación.

HASHING\$1ALGORITHM\$1UNAVAILABLE  
Es posible que aparezca este error si la distribución Java del dispositivo no admite el algoritmo de hash requerido o cuando el algoritmo de hash especificado en la receta de un componente no es válido.

DEVICE\$1CONFIG\$1NOT\$1VALID\$1FOR\$1ARTIFACT\$1DOWNLOAD  
Es posible que aparezca este error cuando hay un error en la configuración del dispositivo que impide que la implementación descargue el artefacto de Amazon S3 o de la nube de Greengrass. Compruebe el registro para ver si hay un error específico y, a continuación, vuelva a intentar la implementación.

## Error de dependencia
<a name="dependency-error"></a>

DOCKER\$1ERROR  
Es posible que aparezca este error al extraer una imagen de Docker. Compruebe los códigos o registros de error adicionales para obtener más información.

DOCKER\$1SERVICE\$1UNAVAILABLE  
Es posible que aparezca este error si Greengrass no puede iniciar sesión en el registro de Docker. Compruebe el registro para ver si hay un error específico y, a continuación, vuelva a intentar la implementación.

DOCKER\$1LOGIN\$1ERROR  
Es posible que aparezca este error cuando se produce un error inesperado al iniciar sesión en Docker. Compruebe el registro para ver si hay un error específico y, a continuación, vuelva a intentar la implementación.

DOCKER\$1PULL\$1ERROR  
Es posible que aparezca este error cuando se produce un error inesperado al extraer una imagen de Docker del registro. Compruebe el registro para ver si hay un error específico y, a continuación, vuelva a intentar la implementación.

DOCKER\$1IMAGE\$1NOT\$1VALID  
Es posible que aparezca este error cuando la imagen de Docker solicitada no existe. Compruebe el registro para ver si hay un error específico y, a continuación, vuelva a intentar la implementación.

DOCKER\$1IMAGE\$1QUERY\$1ERROR  
Es posible que aparezca este error cuando se produzca un error inesperado al consultar Docker para ver las imágenes disponibles. Compruebe el registro para ver si hay un error específico y vuelva a intentar la implementación.

S3\$1ERROR  
Es posible que aparezca este error al descargar un artefacto de Amazon S3. Compruebe los códigos o registros de error adicionales para obtener más información.

S3\$1RESOURCE\$1NOT\$1FOUND  
Es posible que aparezca este error cuando una operación de Amazon S3 devuelva un error 404. Compruebe los códigos o registros de error adicionales para obtener más información.

S3\$1BAD\$1REQUEST  
Es posible que aparezca este error cuando una operación de Amazon S3 devuelva un error 400. Compruebe el registro para ver si hay un error específico y vuelva a intentar la solicitud.

## Error de HTTP
<a name="http-error"></a>

HTTP\$1REQUEST\$1ERROR  
Es posible que aparezca este error cuando se produce un error al realizar una solicitud HTTP. Compruebe el registro para ver si hay un error específico.

DOWNLOAD\$1DEPLOYMENT\$1DOCUMENT\$1ERROR  
Es posible que aparezca este error cuando se produce un error HTTP al descargar el documento de implementación. Compruebe el registro para ver si hay un error HTTP específico.

GET\$1GREENGRASS\$1ARTIFACT\$1SIZE\$1ERROR  
Es posible que aparezca este error cuando se produce un error HTTP al obtener el tamaño de un artefacto de un componente público. Compruebe el registro para ver si hay un error HTTP específico.

DOWNLOAD\$1GREENGRASS\$1ARTIFACT\$1ERROR  
Es posible que aparezca este error cuando se produce un error HTTP al descargar un artefacto de componente público. Compruebe el registro para ver si hay un error HTTP específico.

## Error de red
<a name="network-error"></a>

NETWORK\$1ERROR  
Es posible que aparezca este error cuando hay un problema de conexión durante una implementación. Compruebe la conexión del dispositivo a Internet e intente la implementación de nuevo.

## Error de núcleo
<a name="nucleus-error"></a>

BAD\$1REQUEST  
Es posible que aparezca este error cuando una operación AWS en la nube devuelva un error 400. Consulte el registro para ver qué API provocó el error y, a continuación, consulte la página de actualización del software de Nucleus para comprobar si el problema se ha corregido en una versión posterior del núcleo o póngase en contacto con nosotros Soporte.

NUCLEUS\$1VERSION\$1NOT\$1FOUND  
Es posible que aparezca este error cuando un dispositivo principal no pueda encontrar la versión del núcleo activo. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

NUCLEUS\$1RESTART\$1FAILURE  
Es posible que aparezca este error cuando el núcleo no se reinicie durante una implementación que requiera un reinicio del núcleo. Consulte el registro del cargador para ver qué causó el error, luego consulte la página de actualización del software del núcleo para ver si el problema se ha corregido en una versión posterior del núcleo, o comuníquese con Soporte. 

INSTALLED\$1COMPONENT\$1NOT\$1FOUND  
Es posible que aparezca este error cuando el núcleo no pueda localizar un componente instalado. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

DEPLOYMENT\$1DOCUMENT\$1NOT\$1VALID  
Es posible que aparezca este error cuando el dispositivo reciba un documento de implementación que no es válido. Compruebe los códigos de error adicionales o consulte el registro para ver la causa del error.

EMPTY\$1DEPLOYMENT\$1REQUEST  
Es posible que aparezca este error cuando un dispositivo reciba una solicitud de implementación vacía. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

DEPLOYMENT\$1DOCUMENT\$1PARSE\$1ERROR  
Es posible que aparezca este error cuando el formato de la solicitud de implementación no coincide con el formato esperado. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

COMPONENT\$1METADATA\$1NOT\$1VALID\$1IN\$1DEPLOYMENT  
Es posible que aparezca este error cuando la solicitud de implementación contiene metadatos de componentes que no son válidos. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

LAUNCH\$1DIRECTORY\$1CORRUPTED  
Es posible que aparezca este error cuando mueva un dispositivo de Greengrass de un grupo de objetos a otro y luego de vuelta al grupo original, con implementaciones que requieren que Greengrass se reinicie. Para resolver el error, cree de nuevo el directorio de inicio de Greengrass en el dispositivo.  
Para obtener más información, consulte [Error: com.aws.greengrass.deployment.exceptions.DeploymentException: Unable to process deployment. Greengrass launch directory is not set up or Greengrass is not set up as a system service](troubleshooting.md#deployment-error-unable-to-process-deployment).

## Error del servidor
<a name="server-error"></a>

SERVER\$1ERROR  
Es posible que aparezca este error cuando una operación de AWS servicio devuelva un error 500 porque el servicio no puede procesar la solicitud en este momento. Vuelva a intentar la implementación más tarde.

S3\$1SERVER\$1ERROR  
Es posible que aparezca este error cuando una operación de Amazon S3 devuelve un error 500. Compruebe los códigos o registros de error adicionales para obtener más información.

## Error del servicio en la nube
<a name="cloud-service-error"></a>

RESOLVE\$1COMPONENT\$1CANDIDATES\$1BAD\$1RESPONSE  
Es posible que aparezca este error cuando el servicio en la nube de Greengrass envía una respuesta incompatible a la operación `ResolveComponentCandidates`. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

DEPLOYMENT\$1DOCUMENT\$1SIZE\$1EXCEEDED  
Es posible que aparezca este error cuando el documento de implementación solicitado supere la cuota de tamaño máxima. Reduzca el tamaño del documento de implementación e intente realizar la implementación de nuevo.

GREENGRASS\$1ARTIFACT\$1SIZE\$1NOT\$1FOUND  
Es posible que aparezca este error cuando Greengrass no pueda obtener el tamaño de un artefacto de componente público. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

DEPLOYMENT\$1DOCUMENT\$1NOT\$1VALID  
Es posible que aparezca este error cuando el dispositivo reciba un documento de implementación que no es válido. Compruebe los códigos de error adicionales o consulte el registro para ver la causa del error.

EMPTY\$1DEPLOYMENT\$1REQUEST  
Es posible que aparezca este error cuando un dispositivo reciba una solicitud de implementación vacía. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

DEPLOYMENT\$1DOCUMENT\$1PARSE\$1ERROR  
Es posible que aparezca este error cuando el formato de la solicitud de implementación no coincide con el formato esperado. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

COMPONENT\$1METADATA\$1NOT\$1VALID\$1IN\$1DEPLOYMENT  
Es posible que aparezca este error cuando la solicitud de implementación contiene metadatos de componentes que no son válidos. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

## Errores genéricos
<a name="generic-error"></a>

Estos errores genéricos no tienen un tipo de error asociado.

DEPLOYMENT\$1INTERRUPTED  
Es posible que aparezca este error cuando no se pueda completar una implementación debido a un cierre del núcleo u otro suceso externo. Compruebe los códigos o registros de error adicionales para obtener más información.

ARTIFACT\$1DOWNLOAD\$1ERROR  
Es posible que aparezca este error cuando haya un problema al descargar un artefacto. Compruebe los códigos o registros de error adicionales para obtener más información.

NO\$1AVAILABLE\$1COMPONENT\$1VERSION  
Es posible que aparezca este error cuando la versión de un componente no existe en la nube o de forma local, o si hay un conflicto de resolución de dependencias. Compruebe los códigos o registros de error adicionales para obtener más información.

COMPONENT\$1PACKAGE\$1LOADING\$1ERROR  
Es posible que reciba este error cuando se produce un error al procesar los artefactos descargados. Compruebe los códigos o registros de error adicionales para obtener más información.

CLOUD\$1 API\$1ERROR  
Es posible que aparezca este error cuando se produce un error al llamar a una API AWS de servicio. Compruebe los códigos o registros de error adicionales para obtener más información.

IO\$1ERROR  
Es posible que aparezca este error cuando se produce un I/O error durante una implementación. Compruebe los códigos o registros de error adicionales para obtener más información.

COMPONENT\$1UPDATE\$1ERROR  
Es posible que aparezca este error cuando un componente no se actualice durante una implementación. Compruebe los códigos de error adicionales o consulte el registro para ver la causa del error.

## Error desconocido
<a name="unknown-error"></a>

DEPLOYMENT\$1FAILURE  
Es posible que aparezca este error cuando se produce un error en una implementación porque se ha producido una excepción no comprobada. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

DEPLOYMENT\$1TYPE\$1NOT\$1VALID  
Es posible que aparezca este error cuando el tipo de implementación no sea válido. Consulte el registro para ver la causa del error y, a continuación, consulte la página de actualización del software de núcleo para comprobar si el problema se ha corregido en una versión posterior o póngase en contacto con Soporte.

# Códigos de estado de componentes detallados
<a name="troubleshooting-component"></a>

Utilice los códigos de estado y las soluciones de estas secciones para resolver problemas con componentes al utilizar el núcleo de Greengrass versión 2.8.0 o posterior.

Muchos de los estados de este tema contienen información adicional en los registros de AWS IoT Greengrass Core. Estos registros se almacenan en el sistema de archivos local del dispositivo principal. Hay registros para cada componente individual. Para obtener información sobre cómo acceder a los registros, consulte [Acceso a los registros del sistema de archivos](monitor-logs.md#access-local-logs).

INSTALL\$1ERROR  
Esto puede aparecer cuando se produce un error al ejecutar un script de instalación. El código de error aparece en el registro de componentes. Compruebe si hay errores en el script de instalación y vuelva a implementar el componente.

INSTALL\$1CONFIG\$1NOT\$1VALID  
Es posible que aparezca este error cuando no se haya podido completar la instalación de un componente porque la sección `install` de la receta no es válida. Consulte la sección de instalación de su receta para ver si hay errores y vuelva a intentar la implementación.

INSTALL\$1IO\$1ERROR  
Esto puede aparecer cuando se produce un error de I/O durante la instalación de un componente. Consulte el registro de errores del componente para obtener más detalles sobre el error.

INSTALL\$1MISSING\$1DEFAULT\$1RUNWITH  
Este error puede aparecer cuando AWS IoT Greengrass no puede determinar el usuario o el grupo que se va a utilizar al ejecutar un componente. Asegúrese de que la sección `runWith` de la receta de instalación incluya un usuario o grupo válido. 

INSTALL\$1TIMEOUT  
Este error puede aparecer si el script de instalación no ha finalizado dentro del tiempo de espera configurado. Aumente el periodo `Timeout` especificado en la sección `install` de la receta o modifique su script de instalación para que finalice dentro del tiempo de espera configurado.

STARTUP\$1ERROR  
Esto puede aparecer cuando se produce un error al ejecutar un script de iniciación. El código de error aparece en el registro de componentes. Compruebe si hay errores en el script de instalación y vuelva a implementar el componente.

STARTUP\$1CONFIG\$1NOT\$1VALID  
Es posible que aparezca este error cuando no se haya podido completar la instalación de un componente porque la sección `startup` de la receta no es válida. Consulte la sección de iniciación de su receta para ver si hay errores y vuelva a intentar la implementación.

STARTUP\$1IO\$1ERROR  
Esto puede aparecer cuando se produce un error de I/O durante la iniciación de un componente. Consulte el registro de errores del componente para obtener más detalles sobre el error.

STARTUP\$1MISSING\$1DEFAULT\$1RUNWITH  
Es posible que aparezca este error cuando AWS IoT Greengrass no pueda determinar el usuario o el grupo que se va a utilizar al ejecutar un componente. Asegúrese de que la sección `runWith` de la receta de iniciación incluya un usuario o grupo válido.

STARTUP\$1TIMEOUT  
Este error puede aparecer si el script de iniciación no ha finalizado dentro del tiempo de espera configurado. Aumente el periodo `Timeout` especificado en la sección `startup` de la receta o modifique el script de iniciación para que finalice dentro del tiempo de espera configurado.

RUN\$1ERROR  
Esto puede aparecer cuando se produce un error al ejecutar un script de componente. El código de error aparece en el registro de componentes. Compruebe si hay errores en el script y vuelva a implementar el componente.

RUN\$1MISSING\$1DEFAULT\$1RUNWITH  
Es posible que aparezca este error cuando AWS IoT Greengrass no pueda determinar el usuario o el grupo que se va a utilizar al ejecutar un componente. Verifique que la sección `runWith` de su receta de ejecución incluya un usuario o grupo válido.

RUN\$1CONFIG\$1NOT\$1VALID  
Es posible que aparezca este error cuando no se pudo ejecutar un componente porque la sección `run` de la receta no es válida. Consulte la sección de ejecución de su receta para ver si hay errores y vuelva a intentar la implementación.

RUN\$1IO\$1ERROR  
Es posible que aparezca esto cuando se produce un error de I/O mientras el componente se está ejecutando. Consulte el registro de errores del componente para obtener más detalles sobre el error.

RUN\$1TIMEOUT  
Es posible que reciba este error cuando el script de ejecución no finalizó dentro del tiempo de espera configurado. Aumente el periodo `Timeout` especificado en la sección `run` de la receta o modifique el script de ejecución para que finalice dentro del tiempo de espera configurado.

SHUTDOWN\$1ERROR  
Esto puede aparecer cuando se produce un error al cerrar un script de componente. El código de error aparece en el registro de componentes. Compruebe el script de apagado para detectar errores e implemente su componente nuevamente.

SHUTDOWN\$1TIMEOUT  
Es posible que reciba este error cuando el script de apagado no finalizó dentro del tiempo de espera configurado. Aumente el periodo `Timeout` especificado en la sección `shutdown` de la receta o modifique el script de ejecución para que finalice dentro del tiempo de espera configurado.