

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 排查客户端设备问题
<a name="troubleshooting-client-devices"></a>

使用本节中的故障排除信息和解决方案可帮助排查 Greengrass 客户端设备和客户端设备组件的问题。

**Topics**
+ [Greengrass Discovery 问题](#greengrass-discovery-issues)
+ [MQTT 连接问题](#mqtt-connection-issues)

## Greengrass Discovery 问题
<a name="greengrass-discovery-issues"></a>

请使用以下信息帮助排查 Greengrass Discovery 的问题。当客户端设备使用 [Greengrass Discovery API](greengrass-discover-api.md) 来识别其可连接的 Greengrass 核心设备时，可能会出现这些问题。

**Topics**
+ [Greengrass Discovery 问题（HTTP API）](#greengrass-discovery-http-issues)
+ [Greengrass 发现问题（适用于 Python 的 v2）AWS IoT Device SDK](#greengrass-discovery-python-issues)
+ [Greengrass 发现问题（C\$1\$1 版 v2）AWS IoT Device SDK](#greengrass-discovery-cpp-issues)
+ [Greengrass 发现问题 (v2 适用于)AWS IoT Device SDK JavaScript](#greengrass-discovery-javascript-issues)
+ [Greengrass 发现问题（适用于 Java 的 v2）AWS IoT Device SDK](#greengrass-discovery-java-issues)

### Greengrass Discovery 问题（HTTP API）
<a name="greengrass-discovery-http-issues"></a>

请使用以下信息帮助排查 Greengrass Discovery 的问题。如果您[使用 cURL 测试 Discovery API](greengrass-discover-api.md#greengrass-discover-test-request)，则可能出现这类错误。

**Topics**
+ [curl: (52) Empty reply from server](#greengrass-discovery-http-issue-no-response)
+ [HTTP 403: \$1"message":null,"traceId":"a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"\$1](#greengrass-discovery-http-issue-forbidden)
+ [HTTP 404: \$1"errorMessage":"The thing provided for discovery was not found"\$1](#greengrass-discovery-http-issue-not-found)

#### curl: (52) Empty reply from server
<a name="greengrass-discovery-http-issue-no-response"></a>

<a name="troubleshooting-greengrass-discovery-no-response-issue"></a>如果您在请求中指定了非活动 AWS IoT 证书，则可能会看到此错误。

<a name="troubleshooting-greengrass-discovery-no-response-solution"></a>检查客户端设备是否附有证书，以及证书是否处于活动状态。有关更多信息，请参阅《AWS IoT Core 开发人员指南》**中的[将事物或策略附加到客户端证书](https://docs.aws.amazon.com/iot/latest/developerguide/attach-to-cert.html)和[激活或停用客户端证书](https://docs.aws.amazon.com/iot/latest/developerguide/activate-or-deactivate-device-cert.html)。

#### HTTP 403: \$1"message":null,"traceId":"a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"\$1
<a name="greengrass-discovery-http-issue-forbidden"></a>

<a name="troubleshooting-greengrass-discovery-forbidden-issue"></a>如果客户端设备无权自行调用 `greengrass:Discover`，则可能会出现此错误。

<a name="troubleshooting-greengrass-discovery-forbidden-solution"></a>检查客户端设备证书是否有允许 `greengrass:Discover` 的政策。您不能使用 `Resource` 部分中的[事物策略变量](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) 来获得此权限。有关更多信息，请参阅 [发现身份验证和授权](greengrass-discover-api.md#greengrass-discover-auth)。

#### HTTP 404: \$1"errorMessage":"The thing provided for discovery was not found"\$1
<a name="greengrass-discovery-http-issue-not-found"></a>

<a name="troubleshooting-greengrass-discovery-not-found-issue"></a>您可能会在以下情况下遇到此错误：<a name="troubleshooting-greengrass-discovery-not-found-issue-list"></a>
+ 客户端设备未与任何 Greengrass 核心设备或群组关联。 AWS IoT Greengrass V1 
+ 客户端设备关联的 Greengrass 核心设备 AWS IoT Greengrass V1 或组都没有 MQTT 代理端点。
+ 客户端设备关联的 Greengrass 核心设备均不运行[客户端设备身份验证组件](client-device-auth-component.md)。

<a name="troubleshooting-greengrass-discovery-not-found-solution"></a>检查客户端设备是否与您要连接的核心设备相关联。然后，检查核心设备是否运行[客户端设备身份验证组件](client-device-auth-component.md)，且至少有一个 MQTT 代理端点。有关更多信息，请参阅下列内容：<a name="troubleshooting-greengrass-discovery-not-found-solution-links"></a>
+ [关联客户端设备](associate-client-devices.md)
+ [管理核心设备端点](manage-core-device-endpoints.md)
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)

### Greengrass 发现问题（适用于 Python 的 v2）AWS IoT Device SDK
<a name="greengrass-discovery-python-issues"></a>

请使用以下信息帮助排查[适用于 Python 的AWS IoT Device SDK v2](https://github.com/aws/aws-iot-device-sdk-python-v2) 中的 Greengrass Discovery 的问题。

**Topics**
+ [awscrt.exceptions.AwsCrtError: AWS\$1ERROR\$1HTTP\$1CONNECTION\$1CLOSED: The connection has closed or is closing.](#greengrass-discovery-python-issue-no-response)
+ [awsiot.greengrass\$1discovery.DiscoveryException: ('Error during discover call: response\$1code=403', 403)](#greengrass-discovery-python-issue-forbidden)
+ [awsiot.greengrass\$1discovery.DiscoveryException: ('Error during discover call: response\$1code=404', 404)](#greengrass-discovery-python-issue-not-found)

#### awscrt.exceptions.AwsCrtError: AWS\$1ERROR\$1HTTP\$1CONNECTION\$1CLOSED: The connection has closed or is closing.
<a name="greengrass-discovery-python-issue-no-response"></a>

<a name="troubleshooting-greengrass-discovery-no-response-issue"></a>如果您在请求中指定了非活动 AWS IoT 证书，则可能会看到此错误。

<a name="troubleshooting-greengrass-discovery-no-response-solution"></a>检查客户端设备是否附有证书，以及证书是否处于活动状态。有关更多信息，请参阅《AWS IoT Core 开发人员指南》**中的[将事物或策略附加到客户端证书](https://docs.aws.amazon.com/iot/latest/developerguide/attach-to-cert.html)和[激活或停用客户端证书](https://docs.aws.amazon.com/iot/latest/developerguide/activate-or-deactivate-device-cert.html)。

#### awsiot.greengrass\$1discovery.DiscoveryException: ('Error during discover call: response\$1code=403', 403)
<a name="greengrass-discovery-python-issue-forbidden"></a>

<a name="troubleshooting-greengrass-discovery-forbidden-issue"></a>如果客户端设备无权自行调用 `greengrass:Discover`，则可能会出现此错误。

<a name="troubleshooting-greengrass-discovery-forbidden-solution"></a>检查客户端设备证书是否有允许 `greengrass:Discover` 的政策。您不能使用 `Resource` 部分中的[事物策略变量](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) 来获得此权限。有关更多信息，请参阅 [发现身份验证和授权](greengrass-discover-api.md#greengrass-discover-auth)。

#### awsiot.greengrass\$1discovery.DiscoveryException: ('Error during discover call: response\$1code=404', 404)
<a name="greengrass-discovery-python-issue-not-found"></a>

<a name="troubleshooting-greengrass-discovery-not-found-issue"></a>您可能会在以下情况下遇到此错误：<a name="troubleshooting-greengrass-discovery-not-found-issue-list"></a>
+ 客户端设备未与任何 Greengrass 核心设备或群组关联。 AWS IoT Greengrass V1 
+ 客户端设备关联的 Greengrass 核心设备 AWS IoT Greengrass V1 或组都没有 MQTT 代理端点。
+ 客户端设备关联的 Greengrass 核心设备均不运行[客户端设备身份验证组件](client-device-auth-component.md)。

<a name="troubleshooting-greengrass-discovery-not-found-solution"></a>检查客户端设备是否与您要连接的核心设备相关联。然后，检查核心设备是否运行[客户端设备身份验证组件](client-device-auth-component.md)，且至少有一个 MQTT 代理端点。有关更多信息，请参阅下列内容：<a name="troubleshooting-greengrass-discovery-not-found-solution-links"></a>
+ [关联客户端设备](associate-client-devices.md)
+ [管理核心设备端点](manage-core-device-endpoints.md)
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)

### Greengrass 发现问题（C\$1\$1 版 v2）AWS IoT Device SDK
<a name="greengrass-discovery-cpp-issues"></a>

请使用以下信息帮助排查[适用于 C\$1\$1 的AWS IoT Device SDK v2](https://github.com/aws/aws-iot-device-sdk-cpp-v2) 中的 Greengrass Discovery 的问题。

**Topics**
+ [aws-c-http: AWS\$1ERROR\$1HTTP\$1CONNECTION\$1CLOSED, The connection has closed or is closing.](#greengrass-discovery-cpp-issue-no-response)
+ [aws-c-common: AWS\$1ERROR\$1UNKNOWN, Unknown error. (HTTP 403)](#greengrass-discovery-cpp-issue-forbidden)
+ [aws-c-common: AWS\$1ERROR\$1UNKNOWN, Unknown error. (HTTP 404)](#greengrass-discovery-cpp-issue-not-found)

#### aws-c-http: AWS\$1ERROR\$1HTTP\$1CONNECTION\$1CLOSED, The connection has closed or is closing.
<a name="greengrass-discovery-cpp-issue-no-response"></a>

<a name="troubleshooting-greengrass-discovery-no-response-issue"></a>如果您在请求中指定了非活动 AWS IoT 证书，则可能会看到此错误。

<a name="troubleshooting-greengrass-discovery-no-response-solution"></a>检查客户端设备是否附有证书，以及证书是否处于活动状态。有关更多信息，请参阅《AWS IoT Core 开发人员指南》**中的[将事物或策略附加到客户端证书](https://docs.aws.amazon.com/iot/latest/developerguide/attach-to-cert.html)和[激活或停用客户端证书](https://docs.aws.amazon.com/iot/latest/developerguide/activate-or-deactivate-device-cert.html)。

#### aws-c-common: AWS\$1ERROR\$1UNKNOWN, Unknown error. (HTTP 403)
<a name="greengrass-discovery-cpp-issue-forbidden"></a>

<a name="troubleshooting-greengrass-discovery-forbidden-issue"></a>如果客户端设备无权自行调用 `greengrass:Discover`，则可能会出现此错误。

<a name="troubleshooting-greengrass-discovery-forbidden-solution"></a>检查客户端设备证书是否有允许 `greengrass:Discover` 的政策。您不能使用 `Resource` 部分中的[事物策略变量](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) 来获得此权限。有关更多信息，请参阅 [发现身份验证和授权](greengrass-discover-api.md#greengrass-discover-auth)。

#### aws-c-common: AWS\$1ERROR\$1UNKNOWN, Unknown error. (HTTP 404)
<a name="greengrass-discovery-cpp-issue-not-found"></a>

<a name="troubleshooting-greengrass-discovery-not-found-issue"></a>您可能会在以下情况下遇到此错误：<a name="troubleshooting-greengrass-discovery-not-found-issue-list"></a>
+ 客户端设备未与任何 Greengrass 核心设备或群组关联。 AWS IoT Greengrass V1 
+ 客户端设备关联的 Greengrass 核心设备 AWS IoT Greengrass V1 或组都没有 MQTT 代理端点。
+ 客户端设备关联的 Greengrass 核心设备均不运行[客户端设备身份验证组件](client-device-auth-component.md)。

<a name="troubleshooting-greengrass-discovery-not-found-solution"></a>检查客户端设备是否与您要连接的核心设备相关联。然后，检查核心设备是否运行[客户端设备身份验证组件](client-device-auth-component.md)，且至少有一个 MQTT 代理端点。有关更多信息，请参阅下列内容：<a name="troubleshooting-greengrass-discovery-not-found-solution-links"></a>
+ [关联客户端设备](associate-client-devices.md)
+ [管理核心设备端点](manage-core-device-endpoints.md)
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)

### Greengrass 发现问题 (v2 适用于)AWS IoT Device SDK JavaScript
<a name="greengrass-discovery-javascript-issues"></a>

[使用以下信息对 v2 中的 Greengrass 发现问题进行故障排除。AWS IoT Device SDK JavaScript](https://github.com/aws/aws-iot-device-sdk-js-v2)

**Topics**
+ [Error: aws-c-http: AWS\$1ERROR\$1HTTP\$1CONNECTION\$1CLOSED, The connection has closed or is closing.](#greengrass-discovery-javascript-issue-no-response)
+ [Error: Discovery failed (headers: [object Object]) \$1 response\$1code: 403 \$1](#greengrass-discovery-javascript-issue-forbidden)
+ [Error: Discovery failed (headers: [object Object]) \$1 response\$1code: 404 \$1](#greengrass-discovery-javascript-issue-not-found)
+ [Error: Discovery failed (headers: [object Object])](#greengrass-discovery-javascript-issue-forbidden-not-found)

#### Error: aws-c-http: AWS\$1ERROR\$1HTTP\$1CONNECTION\$1CLOSED, The connection has closed or is closing.
<a name="greengrass-discovery-javascript-issue-no-response"></a>

<a name="troubleshooting-greengrass-discovery-no-response-issue"></a>如果您在请求中指定了非活动 AWS IoT 证书，则可能会看到此错误。

<a name="troubleshooting-greengrass-discovery-no-response-solution"></a>检查客户端设备是否附有证书，以及证书是否处于活动状态。有关更多信息，请参阅《AWS IoT Core 开发人员指南》**中的[将事物或策略附加到客户端证书](https://docs.aws.amazon.com/iot/latest/developerguide/attach-to-cert.html)和[激活或停用客户端证书](https://docs.aws.amazon.com/iot/latest/developerguide/activate-or-deactivate-device-cert.html)。

#### Error: Discovery failed (headers: [object Object]) \$1 response\$1code: 403 \$1
<a name="greengrass-discovery-javascript-issue-forbidden"></a>

<a name="troubleshooting-greengrass-discovery-forbidden-issue"></a>如果客户端设备无权自行调用 `greengrass:Discover`，则可能会出现此错误。

<a name="troubleshooting-greengrass-discovery-forbidden-solution"></a>检查客户端设备证书是否有允许 `greengrass:Discover` 的政策。您不能使用 `Resource` 部分中的[事物策略变量](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) 来获得此权限。有关更多信息，请参阅 [发现身份验证和授权](greengrass-discover-api.md#greengrass-discover-auth)。

#### Error: Discovery failed (headers: [object Object]) \$1 response\$1code: 404 \$1
<a name="greengrass-discovery-javascript-issue-not-found"></a>

<a name="troubleshooting-greengrass-discovery-not-found-issue"></a>您可能会在以下情况下遇到此错误：<a name="troubleshooting-greengrass-discovery-not-found-issue-list"></a>
+ 客户端设备未与任何 Greengrass 核心设备或群组关联。 AWS IoT Greengrass V1 
+ 客户端设备关联的 Greengrass 核心设备 AWS IoT Greengrass V1 或组都没有 MQTT 代理端点。
+ 客户端设备关联的 Greengrass 核心设备均不运行[客户端设备身份验证组件](client-device-auth-component.md)。

<a name="troubleshooting-greengrass-discovery-not-found-solution"></a>检查客户端设备是否与您要连接的核心设备相关联。然后，检查核心设备是否运行[客户端设备身份验证组件](client-device-auth-component.md)，且至少有一个 MQTT 代理端点。有关更多信息，请参阅下列内容：<a name="troubleshooting-greengrass-discovery-not-found-solution-links"></a>
+ [关联客户端设备](associate-client-devices.md)
+ [管理核心设备端点](manage-core-device-endpoints.md)
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)

#### Error: Discovery failed (headers: [object Object])
<a name="greengrass-discovery-javascript-issue-forbidden-not-found"></a>

运行 Greengrass Discovery 示例时可能会出现此错误（没有 HTTP 响应代码）。此错误可能由多种原因引起。
+ <a name="troubleshooting-greengrass-discovery-forbidden-issue"></a>如果客户端设备无权自行调用 `greengrass:Discover`，则可能会出现此错误。

  <a name="troubleshooting-greengrass-discovery-forbidden-solution"></a>检查客户端设备证书是否有允许 `greengrass:Discover` 的政策。您不能使用 `Resource` 部分中的[事物策略变量](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) 来获得此权限。有关更多信息，请参阅 [发现身份验证和授权](greengrass-discover-api.md#greengrass-discover-auth)。
+ <a name="troubleshooting-greengrass-discovery-not-found-issue"></a>您可能会在以下情况下遇到此错误：<a name="troubleshooting-greengrass-discovery-not-found-issue-list"></a>
  + 客户端设备未与任何 Greengrass 核心设备或群组关联。 AWS IoT Greengrass V1 
  + 客户端设备关联的 Greengrass 核心设备 AWS IoT Greengrass V1 或组都没有 MQTT 代理端点。
  + 客户端设备关联的 Greengrass 核心设备均不运行[客户端设备身份验证组件](client-device-auth-component.md)。

  <a name="troubleshooting-greengrass-discovery-not-found-solution"></a>检查客户端设备是否与您要连接的核心设备相关联。然后，检查核心设备是否运行[客户端设备身份验证组件](client-device-auth-component.md)，且至少有一个 MQTT 代理端点。有关更多信息，请参阅下列内容：<a name="troubleshooting-greengrass-discovery-not-found-solution-links"></a>
  + [关联客户端设备](associate-client-devices.md)
  + [管理核心设备端点](manage-core-device-endpoints.md)
  + [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)

### Greengrass 发现问题（适用于 Java 的 v2）AWS IoT Device SDK
<a name="greengrass-discovery-java-issues"></a>

请使用以下信息帮助排查[适用于 Java 的AWS IoT Device SDK v2](https://github.com/aws/aws-iot-device-sdk-java-v2) 中的 Greengrass Discovery 的问题。

**Topics**
+ [software.amazon.awssdk.crt.CrtRuntimeException: Error Getting Response Status Code from HttpStream. (aws\$1last\$1error: AWS\$1ERROR\$1HTTP\$1DATA\$1NOT\$1AVAILABLE(2062), This data is not yet available.)](#greengrass-discovery-java-issue-no-response)
+ [java.lang.RuntimeException: Error x-amzn-ErrorType(403)](#greengrass-discovery-java-issue-forbidden)
+ [java.lang.RuntimeException: Error x-amzn-ErrorType(404)](#greengrass-discovery-java-issue-not-found)

#### software.amazon.awssdk.crt.CrtRuntimeException: Error Getting Response Status Code from HttpStream. (aws\$1last\$1error: AWS\$1ERROR\$1HTTP\$1DATA\$1NOT\$1AVAILABLE(2062), This data is not yet available.)
<a name="greengrass-discovery-java-issue-no-response"></a>

<a name="troubleshooting-greengrass-discovery-no-response-issue"></a>如果您在请求中指定了非活动 AWS IoT 证书，则可能会看到此错误。

<a name="troubleshooting-greengrass-discovery-no-response-solution"></a>检查客户端设备是否附有证书，以及证书是否处于活动状态。有关更多信息，请参阅《AWS IoT Core 开发人员指南》**中的[将事物或策略附加到客户端证书](https://docs.aws.amazon.com/iot/latest/developerguide/attach-to-cert.html)和[激活或停用客户端证书](https://docs.aws.amazon.com/iot/latest/developerguide/activate-or-deactivate-device-cert.html)。

#### java.lang.RuntimeException: Error x-amzn-ErrorType(403)
<a name="greengrass-discovery-java-issue-forbidden"></a>

<a name="troubleshooting-greengrass-discovery-forbidden-issue"></a>如果客户端设备无权自行调用 `greengrass:Discover`，则可能会出现此错误。

<a name="troubleshooting-greengrass-discovery-forbidden-solution"></a>检查客户端设备证书是否有允许 `greengrass:Discover` 的政策。您不能使用 `Resource` 部分中的[事物策略变量](https://docs.aws.amazon.com/iot/latest/developerguide/thing-policy-variables.html) (`iot:Connection.Thing.*`) 来获得此权限。有关更多信息，请参阅 [发现身份验证和授权](greengrass-discover-api.md#greengrass-discover-auth)。

#### java.lang.RuntimeException: Error x-amzn-ErrorType(404)
<a name="greengrass-discovery-java-issue-not-found"></a>

<a name="troubleshooting-greengrass-discovery-not-found-issue"></a>您可能会在以下情况下遇到此错误：<a name="troubleshooting-greengrass-discovery-not-found-issue-list"></a>
+ 客户端设备未与任何 Greengrass 核心设备或群组关联。 AWS IoT Greengrass V1 
+ 客户端设备关联的 Greengrass 核心设备 AWS IoT Greengrass V1 或组都没有 MQTT 代理端点。
+ 客户端设备关联的 Greengrass 核心设备均不运行[客户端设备身份验证组件](client-device-auth-component.md)。

<a name="troubleshooting-greengrass-discovery-not-found-solution"></a>检查客户端设备是否与您要连接的核心设备相关联。然后，检查核心设备是否运行[客户端设备身份验证组件](client-device-auth-component.md)，且至少有一个 MQTT 代理端点。有关更多信息，请参阅下列内容：<a name="troubleshooting-greengrass-discovery-not-found-solution-links"></a>
+ [关联客户端设备](associate-client-devices.md)
+ [管理核心设备端点](manage-core-device-endpoints.md)
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)

## MQTT 连接问题
<a name="mqtt-connection-issues"></a>

请使用以下信息帮助排查客户端 MQTT 连接问题。当客户端设备尝试通过 MQTT 连接到核心设备时，可能会出现此类问题。

**Topics**
+ [io.moquette.broker.Authorizator: Client does not have read permissions on the topic](#client-missing-subscribe-permission)
+ [MQTT 连接问题（Python）](#mqtt-connection-python-issues)
+ [MQTT 连接问题（C\$1\$1）](#mqtt-connection-cpp-issues)
+ [MQTT 连接问题（Java）](#mqtt-connection-java-issues)
+ [MQTT 连接问题 () JavaScript](#mqtt-connection-javascript-issues)

### io.moquette.broker.Authorizator: Client does not have read permissions on the topic
<a name="client-missing-subscribe-permission"></a>

当客户端设备尝试订阅它没有权限的 MQTT 主题时，您可能会在 Greengrass 日志中看到此错误。错误消息中包含该主题。

检查[客户端设备身份验证组件](client-device-auth-component.md)的配置是否包括以下内容：
+ 与客户端设备匹配的设备组。
+ 用于授予该主题 `mqtt:subscribe` 权限的设备组客户端设备授权策略。

<a name="troubleshooting-mqtt-connection-protocol-error-info-links-intro"></a>有关如何部署和配置客户端设备身份验证组件的更多信息，请参阅以下内容；<a name="troubleshooting-mqtt-connection-protocol-error-info-links"></a>
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)
+ [客户端设备身份验证](client-device-auth-component.md)
+ [创建部署](create-deployments.md)

### MQTT 连接问题（Python）
<a name="mqtt-connection-python-issues"></a>

请使用以下信息帮助排查您使用[适用于 Python 的AWS IoT Device SDK v2](https://github.com/aws/aws-iot-device-sdk-python-v2) 时遇到的客户端 MQTT 连接问题。

**Topics**
+ [AWS\$1ERROR\$1MQTT\$1PROTOCOL\$1ERROR: Protocol error occurred](#mqtt-connection-python-issue-protocol-error)
+ [AWS\$1ERROR\$1MQTT\$1UNEXPECTED\$1HANGUP: Unexpected hangup occurred](#mqtt-connection-python-issue-unexpected-hangup)

#### AWS\$1ERROR\$1MQTT\$1PROTOCOL\$1ERROR: Protocol error occurred
<a name="mqtt-connection-python-issue-protocol-error"></a>

<a name="troubleshooting-mqtt-connection-protocol-error-issue"></a>如果[客户端设备身份验证组件](client-device-auth-component.md)未定义授予客户端设备连接权限的客户端设备授权策略，则可能会出现此错误。

<a name="troubleshooting-mqtt-connection-protocol-error-check-cda-configuration"></a>检查客户端设备身份验证组件的配置是否包括以下内容：<a name="troubleshooting-mqtt-connection-protocol-error-cda-configuration-checks"></a>
+ 与客户端设备匹配的设备组。
+ 用于授予该客户端设备 `mqtt:connect` 权限的设备组客户端设备授权策略。

<a name="troubleshooting-mqtt-connection-protocol-error-info-links-intro"></a>有关如何部署和配置客户端设备身份验证组件的更多信息，请参阅以下内容；<a name="troubleshooting-mqtt-connection-protocol-error-info-links"></a>
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)
+ [客户端设备身份验证](client-device-auth-component.md)
+ [创建部署](create-deployments.md)

#### AWS\$1ERROR\$1MQTT\$1UNEXPECTED\$1HANGUP: Unexpected hangup occurred
<a name="mqtt-connection-python-issue-unexpected-hangup"></a>

<a name="troubleshooting-mqtt-connection-protocol-error-issue"></a>如果[客户端设备身份验证组件](client-device-auth-component.md)未定义授予客户端设备连接权限的客户端设备授权策略，则可能会出现此错误。

<a name="troubleshooting-mqtt-connection-protocol-error-check-cda-configuration"></a>检查客户端设备身份验证组件的配置是否包括以下内容：<a name="troubleshooting-mqtt-connection-protocol-error-cda-configuration-checks"></a>
+ 与客户端设备匹配的设备组。
+ 用于授予该客户端设备 `mqtt:connect` 权限的设备组客户端设备授权策略。

<a name="troubleshooting-mqtt-connection-protocol-error-info-links-intro"></a>有关如何部署和配置客户端设备身份验证组件的更多信息，请参阅以下内容；<a name="troubleshooting-mqtt-connection-protocol-error-info-links"></a>
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)
+ [客户端设备身份验证](client-device-auth-component.md)
+ [创建部署](create-deployments.md)

### MQTT 连接问题（C\$1\$1）
<a name="mqtt-connection-cpp-issues"></a>

请使用以下信息帮助排查您使用[适用于 C\$1\$1 的AWS IoT Device SDK v2](https://github.com/aws/aws-iot-device-sdk-cpp-v2) 时遇到的客户端 MQTT 连接问题。

**Topics**
+ [AWS\$1ERROR\$1MQTT\$1PROTOCOL\$1ERROR: Protocol error occurred](#mqtt-connection-cpp-issue-protocol-error)
+ [AWS\$1ERROR\$1MQTT\$1UNEXPECTED\$1HANGUP: Unexpected hangup occurred](#mqtt-connection-cpp-issue-unexpected-hangup)

#### AWS\$1ERROR\$1MQTT\$1PROTOCOL\$1ERROR: Protocol error occurred
<a name="mqtt-connection-cpp-issue-protocol-error"></a>

<a name="troubleshooting-mqtt-connection-protocol-error-issue"></a>如果[客户端设备身份验证组件](client-device-auth-component.md)未定义授予客户端设备连接权限的客户端设备授权策略，则可能会出现此错误。

<a name="troubleshooting-mqtt-connection-protocol-error-check-cda-configuration"></a>检查客户端设备身份验证组件的配置是否包括以下内容：<a name="troubleshooting-mqtt-connection-protocol-error-cda-configuration-checks"></a>
+ 与客户端设备匹配的设备组。
+ 用于授予该客户端设备 `mqtt:connect` 权限的设备组客户端设备授权策略。

<a name="troubleshooting-mqtt-connection-protocol-error-info-links-intro"></a>有关如何部署和配置客户端设备身份验证组件的更多信息，请参阅以下内容；<a name="troubleshooting-mqtt-connection-protocol-error-info-links"></a>
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)
+ [客户端设备身份验证](client-device-auth-component.md)
+ [创建部署](create-deployments.md)

#### AWS\$1ERROR\$1MQTT\$1UNEXPECTED\$1HANGUP: Unexpected hangup occurred
<a name="mqtt-connection-cpp-issue-unexpected-hangup"></a>

<a name="troubleshooting-mqtt-connection-protocol-error-issue"></a>如果[客户端设备身份验证组件](client-device-auth-component.md)未定义授予客户端设备连接权限的客户端设备授权策略，则可能会出现此错误。

<a name="troubleshooting-mqtt-connection-protocol-error-check-cda-configuration"></a>检查客户端设备身份验证组件的配置是否包括以下内容：<a name="troubleshooting-mqtt-connection-protocol-error-cda-configuration-checks"></a>
+ 与客户端设备匹配的设备组。
+ 用于授予该客户端设备 `mqtt:connect` 权限的设备组客户端设备授权策略。

<a name="troubleshooting-mqtt-connection-protocol-error-info-links-intro"></a>有关如何部署和配置客户端设备身份验证组件的更多信息，请参阅以下内容；<a name="troubleshooting-mqtt-connection-protocol-error-info-links"></a>
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)
+ [客户端设备身份验证](client-device-auth-component.md)
+ [创建部署](create-deployments.md)

### MQTT 连接问题（Java）
<a name="mqtt-connection-java-issues"></a>

请使用以下信息帮助排查您使用[适用于 Java 的AWS IoT Device SDK v2](https://github.com/aws/aws-iot-device-sdk-java-v2) 时遇到的客户端 MQTT 连接问题。

**Topics**
+ [software.amazon.awssdk.crt.mqtt.MqttException: Protocol error occurred](#mqtt-connection-java-issue-protocol-error)
+ [AWS\$1ERROR\$1MQTT\$1UNEXPECTED\$1HANGUP: Unexpected hangup occurred](#mqtt-connection-java-issue-unexpected-hangup)

#### software.amazon.awssdk.crt.mqtt.MqttException: Protocol error occurred
<a name="mqtt-connection-java-issue-protocol-error"></a>

<a name="troubleshooting-mqtt-connection-protocol-error-issue"></a>如果[客户端设备身份验证组件](client-device-auth-component.md)未定义授予客户端设备连接权限的客户端设备授权策略，则可能会出现此错误。

<a name="troubleshooting-mqtt-connection-protocol-error-check-cda-configuration"></a>检查客户端设备身份验证组件的配置是否包括以下内容：<a name="troubleshooting-mqtt-connection-protocol-error-cda-configuration-checks"></a>
+ 与客户端设备匹配的设备组。
+ 用于授予该客户端设备 `mqtt:connect` 权限的设备组客户端设备授权策略。

<a name="troubleshooting-mqtt-connection-protocol-error-info-links-intro"></a>有关如何部署和配置客户端设备身份验证组件的更多信息，请参阅以下内容；<a name="troubleshooting-mqtt-connection-protocol-error-info-links"></a>
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)
+ [客户端设备身份验证](client-device-auth-component.md)
+ [创建部署](create-deployments.md)

#### AWS\$1ERROR\$1MQTT\$1UNEXPECTED\$1HANGUP: Unexpected hangup occurred
<a name="mqtt-connection-java-issue-unexpected-hangup"></a>

<a name="troubleshooting-mqtt-connection-protocol-error-issue"></a>如果[客户端设备身份验证组件](client-device-auth-component.md)未定义授予客户端设备连接权限的客户端设备授权策略，则可能会出现此错误。

<a name="troubleshooting-mqtt-connection-protocol-error-check-cda-configuration"></a>检查客户端设备身份验证组件的配置是否包括以下内容：<a name="troubleshooting-mqtt-connection-protocol-error-cda-configuration-checks"></a>
+ 与客户端设备匹配的设备组。
+ 用于授予该客户端设备 `mqtt:connect` 权限的设备组客户端设备授权策略。

<a name="troubleshooting-mqtt-connection-protocol-error-info-links-intro"></a>有关如何部署和配置客户端设备身份验证组件的更多信息，请参阅以下内容；<a name="troubleshooting-mqtt-connection-protocol-error-info-links"></a>
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)
+ [客户端设备身份验证](client-device-auth-component.md)
+ [创建部署](create-deployments.md)

### MQTT 连接问题 () JavaScript
<a name="mqtt-connection-javascript-issues"></a>

使用 [AWS IoT Device SDK v2](https://github.com/aws/aws-iot-device-sdk-js-v2) 时，使用以下信息来解决客户端设备 MQTT 连接问题。 JavaScript

**Topics**
+ [AWS\$1ERROR\$1MQTT\$1PROTOCOL\$1ERROR: Protocol error occurred](#mqtt-connection-javascript-issue-protocol-error)
+ [AWS\$1ERROR\$1MQTT\$1UNEXPECTED\$1HANGUP: Unexpected hangup occurred](#mqtt-connection-javascript-issue-unexpected-hangup)

#### AWS\$1ERROR\$1MQTT\$1PROTOCOL\$1ERROR: Protocol error occurred
<a name="mqtt-connection-javascript-issue-protocol-error"></a>

<a name="troubleshooting-mqtt-connection-protocol-error-issue"></a>如果[客户端设备身份验证组件](client-device-auth-component.md)未定义授予客户端设备连接权限的客户端设备授权策略，则可能会出现此错误。

<a name="troubleshooting-mqtt-connection-protocol-error-check-cda-configuration"></a>检查客户端设备身份验证组件的配置是否包括以下内容：<a name="troubleshooting-mqtt-connection-protocol-error-cda-configuration-checks"></a>
+ 与客户端设备匹配的设备组。
+ 用于授予该客户端设备 `mqtt:connect` 权限的设备组客户端设备授权策略。

<a name="troubleshooting-mqtt-connection-protocol-error-info-links-intro"></a>有关如何部署和配置客户端设备身份验证组件的更多信息，请参阅以下内容；<a name="troubleshooting-mqtt-connection-protocol-error-info-links"></a>
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)
+ [客户端设备身份验证](client-device-auth-component.md)
+ [创建部署](create-deployments.md)

#### AWS\$1ERROR\$1MQTT\$1UNEXPECTED\$1HANGUP: Unexpected hangup occurred
<a name="mqtt-connection-javascript-issue-unexpected-hangup"></a>

<a name="troubleshooting-mqtt-connection-protocol-error-issue"></a>如果[客户端设备身份验证组件](client-device-auth-component.md)未定义授予客户端设备连接权限的客户端设备授权策略，则可能会出现此错误。

<a name="troubleshooting-mqtt-connection-protocol-error-check-cda-configuration"></a>检查客户端设备身份验证组件的配置是否包括以下内容：<a name="troubleshooting-mqtt-connection-protocol-error-cda-configuration-checks"></a>
+ 与客户端设备匹配的设备组。
+ 用于授予该客户端设备 `mqtt:connect` 权限的设备组客户端设备授权策略。

<a name="troubleshooting-mqtt-connection-protocol-error-info-links-intro"></a>有关如何部署和配置客户端设备身份验证组件的更多信息，请参阅以下内容；<a name="troubleshooting-mqtt-connection-protocol-error-info-links"></a>
+ [配置云发现（控制台）](connect-client-devices.md#configure-cloud-discovery-console)
+ [客户端设备身份验证](client-device-auth-component.md)
+ [创建部署](create-deployments.md)