Troubleshooting the AWS Serverless Application Repository - AWS Serverless Application Repository

Troubleshooting the AWS Serverless Application Repository

When you use the AWS Serverless Application Repository, you might encounter issues when you create, update, or delete your applications. Use this section to help troubleshoot common issues that you might encounter. You can also search for answers and post questions in the AWS Serverless Application Repository forums.

Note

Applications in the AWS Serverless Application Repository are deployed by using AWS CloudFormation. For information on troubleshooting AWS CloudFormation issues, see the AWS CloudFormation Troubleshooting Guide.

You Can't Make an Application Public

If you can't make your application public, you might be missing a license file for your application that is approved by the Open Source Initiative (OSI).

To make your application public, you need an OSI-approved license file, and also a successfully published version of the application with a source code URL for the version. You can't update the license of an application after the application is created.

If you can't make your application public because you are missing a license file, delete the application and create a new one with the same name. Make sure that you provide it with one or more open-source licenses approved by the Open Source Initiative (OSI) organization.

A Quota Was Exceeded

If you receive an error message that indicates that a quota was exceeded, check to see if you reached a resource quota. For AWS Serverless Application Repository quotas, see AWS Serverless Application Repository Quotas.

An Updated Readme File Doesn't Appear Immediately

When you make your application public, the contents of your application can take up to 24 hours to update. If you experience delays longer than 24 hours, try contacting AWS Support for help. For details, see following.

You Can't Deploy an Application Due to Insufficient IAM Permissions

To deploy an AWS Serverless Application Repository application, you need permissions to AWS Serverless Application Repository resources and AWS CloudFormation stacks. You might also need permission to use the underlying services described in the application. For example, if you're creating an Amazon S3 bucket or an Amazon DynamoDB table, you need permissions to Amazon S3 or DynamoDB.

If you run into this type of issue, review your AWS Identity and Access Management (IAM) policy and verify that you have the necessary permissions. For more information, see Controlling Access with AWS Identity and Access Management.

You Can't Deploy an Application Because of an Amazon S3 Permission Error When You Execute a Changeset

Example Amazon S3 Permission Error Message

Your access has been denied by S3, please make sure your request credentials have permission to GetObject for awsserverlessrepo-changesets-123456789/*. S3 Error Code: AccessDenied. S3 Error Message: Access Denied (Service: AWSLambdaInternal; Status Code: 403; Error Code: AccessDeniedException; Request ID: 12a3b14c-50d4-11e9-a005-9d36a3dd5e04)

Deploying an application from the AWS Serverless Application Repository requires API calls to two services:

If you receive an error message that indicates that access has been denied by Amazon Simple Storage Service (Amazon S3) when you are calling the AWS CloudFormation ExecuteChangeSet API operation, the aws:userid might not be the same aws:userid that was used to create the changeset.

An example case for this issue is when you are using assumed roles. There are factors that can cause the aws:userid to change between API calls to different services, even when you are using the same role. To learn more about the value that's assigned to aws:userid with assumed roles, see more information about aws:userid.

A potential programmatic solution to ensure a unified aws:userid in Python is to create a session, and then make calls to create and execute within that session.

Example Session with Python Boto3

session = boto3.session.Session() serverlessrepo = session.client('servelessrepo') cloudformation = session.resource('cloudformation')

You Can't Deploy the Same Application Twice

The application name that you provide is used as the name of the AWS CloudFormation stack. If you have problems deploying an application, make sure that you don't have an existing AWS CloudFormation stack with the same name. If you do, provide a different application name or delete the existing stack to deploy the application with the same name.

Why Is My Application Not Publicly Available

Applications are private by default. In order to make your application public, follow the steps here.

Contacting Support

In some cases, you might not be able to find troubleshooting solutions in this section or through the AWS Serverless Application Repository forums. If you have AWS Premium Support, you can create a technical support case at AWS Support.

Before you contact AWS Support, make sure to get the Amazon Resource Name (ARN) for the application that you have questions about. You can find the application ARN in the AWS Serverless Application Repository console.