Troubleshoot issues with AWS IoT Things Graph - AWS IoT Things Graph

Troubleshoot issues with AWS IoT Things Graph

Use the following information to help troubleshoot issues in AWS IoT Things Graph.

If your deployment target is an AWS IoT Greengrass group, you might run into issues that relate directly to AWS IoT Greengrass. For AWS IoT Greengrass troubleshooting information, see Troubleshooting AWS IoT Greengrass. You also need to configure your AWS IoT Greengrass group to work with AWS IoT Things Graph. For information about setting up an environment for deploying AWS IoT Things Graph workflows (flows), see Setting up your environment.

General deployment issues with AWS IoT Things Graph

Symptom Solution

In the AWS IoT Things Graph console, you see Deployed in target in the Status column for your system instance, but your flow isn't running.

The deployment to your AWS IoT Greengrass might have failed.

  • On the AWS IoT console (https://console.aws.amazon.com/iot/), choose the AWS IoT Greengrass tab. Choose the AWS IoT Greengrass group you're using for AWS IoT Things Graph flow deployments. Check the status of your latest deployment. Issues in your AWS IoT Greengrass group might be related to a failed deployment to AWS IoT Greengrass. For AWS IoT Greengrass troubleshooting information, see Troubleshooting AWS IoT Greengrass.

  • Or the failed deployment might be related to an AWS IoT Greengrass group or core that isn't set up for AWS IoT Things Graph.

    For example, you might need to install AWS IoT Greengrass version 1.7 or later. For information about setting up an environment for deploying AWS IoT Things Graph flows, see Setting up your environment.

When you deploy a flow for the first time, a file named thingsgraph.db appears in the thingsgraph directory that you created at the root of your AWS IoT Greengrass core device. You can verify that the flow is running by checking the ThingsGraph.log file in the /greengrass/ggc/var/log/user/region/ThingsGraph directory.

In that file, you should see the following entry, which indicates that the trigger condition has been met and the flow has started.

FlowSchedulerClientGreengrassImpl: StartFlowExecution:
Your flow contains a service that exposes the capability of an AWS Lambda function. (For an example that contains these kinds of services, see Creating a flow with Lambda functions.) The AWS IoT Greengrass deployment fails with an error message indicating that the Lambda function doesn't exist in your AWS IoT Greengrass group.

On the AWS IoT console (https://console.aws.amazon.com/iot/), go to the AWS IoT Greengrass tab. Choose the AWS IoT Greengrass group you're using for AWS IoT Things Graph flow deployments, and then choose the Lambdas tab.

Verify that you've added the Lambda function used in your service to the group. Also verify that you're using the correct version of the function. For example, the AWS IoT Things Graph services used in Creating a flow with Lambda functions require you to add version 1 of each function to your group.

Modbus flow deployment issues with AWS IoT Things Graph

Symptom Solution
Your flow contains a Modbus device. The flow appears to have deployed, but it isn't running. Make sure that you've installed the Modbus-RTU Protocol Adapter.
Your flow contains a Modbus device. The AWS IoT Greengrass deployment fails with this error: unable to load the group file downloaded file Path path doesn't exist. Make sure that you've added your device to your AWS IoT Greengrass group as a local resource. For instructions about how to add local resources to a group, see Access local resources with Lambda functions. Because AWS IoT Things Graph runs as a Lambda function on your core device, you don't have to add a Lambda function. AWS IoT Things Graph uses this local resource. Also make sure that the source path for your device (which represents the physical Modbus serial port) is correct on the AWS IoT Greengrass tab on the AWS IoT console (https://console.aws.amazon.com/iot/).