Skip to content

Amazon ECS Service Steps fail with 'Container.image contains invalid characters' if using a container definition image package ID with a forward slash in it. #10026

@Clare-Octopus

Description

@Clare-Octopus

Severity

Blocking customers from deploying to ECS, workaround exists.

Version

2026.2.10675

Latest Version

I could reproduce the problem in the latest build

What happened?

Using an ECS Step in Octopus -

If you have a packageID with a forward slash in it, we are only picking up the second half of the package ID when sending the container to ECS (so clareecs2 in my image below):

Image

This means the package is found in the step itself (as it exists), but when we go to send it to the ECS service to update it we take what is after the forward slash. This results in the error below when trying to deploy:

Amazon.ECS.Model.ClientException: Container.image contains invalid characters.

This works with a packageID without a forward slash in it aka using the clareecs repository name:

Image

Reproduction

  1. Have a project with an Update Amazon ECS Service step.
  2. Use a container definition with a container image from a feed with a package name with a forward slash in the ID.
  3. Save the step, create the release and deploy it.
  4. See the error.

Error and Stacktrace

Amazon.ECS.Model.ClientException: Container.image contains invalid characters. 
Fri, May 15th 2026 13:00:25 +01:00  Error       ---> Amazon.Runtime.Internal.HttpErrorResponseException: Exception of type 'Amazon.Runtime.Internal.HttpErrorResponseException' was thrown.
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.HttpWebRequestMessage.ProcessHttpResponseMessage(HttpResponseMessage responseMessage)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.HttpWebRequestMessage.GetResponseAsync(CancellationToken cancellationToken)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.HttpHandler`1.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.Unmarshaller.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.ErrorHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       --- End of inner exception stack trace ---
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.HttpErrorResponseExceptionHandler.HandleExceptionStream(IRequestContext requestContext, IWebResponseData httpErrorResponse, HttpErrorResponseException exception, Stream responseStream)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.HttpErrorResponseExceptionHandler.HandleExceptionAsync(IExecutionContext executionContext, HttpErrorResponseException exception)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.ExceptionHandler`1.HandleAsync(IExecutionContext executionContext, Exception exception)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.ErrorHandler.ProcessExceptionAsync(IExecutionContext executionContext, Exception exception)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.ErrorHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.Signer.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.EndpointDiscoveryHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.EndpointDiscoveryHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.RetryHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.RetryHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.BaseAuthResolverHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.ErrorCallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.MetricsHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Calamari.Aws.Deployment.Conventions.UpdateEcsServiceConvention.InstallAsync(RunningDeployment deployment) in C:\BuildAgent\work\62728692c7c35200\source\Calamari.Aws\Deployment\Conventions\UpdateEcsServiceConvention.cs:line 71
Fri, May 15th 2026 13:00:25 +01:00  Error       at Calamari.Aws.Deployment.Conventions.UpdateEcsServiceConvention.Install(RunningDeployment deployment) in C:\BuildAgent\work\62728692c7c35200\source\Calamari.Aws\Deployment\Conventions\UpdateEcsServiceConvention.cs:line 35
Fri, May 15th 2026 13:00:25 +01:00  Error       at Calamari.Deployment.ConventionProcessor.RunInstallConventions(IEnumerable`1 installConventions) in C:\BuildAgent\work\62728692c7c35200\source\Calamari.Shared\Deployment\ConventionProcessor.cs:line 80
Fri, May 15th 2026 13:00:25 +01:00  Error       at Calamari.Deployment.ConventionProcessor.RunConventions(Boolean logExceptions) in C:\BuildAgent\work\62728692c7c35200\source\Calamari.Shared\Deployment\ConventionProcessor.cs:line 31
Fri, May 15th 2026 13:00:25 +01:00  Error       Container.image contains invalid characters.
Fri, May 15th 2026 13:00:25 +01:00  Error       Amazon.ECS.Model.ClientException
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.HttpErrorResponseExceptionHandler.HandleExceptionStream(IRequestContext requestContext, IWebResponseData httpErrorResponse, HttpErrorResponseException exception, Stream responseStream)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.HttpErrorResponseExceptionHandler.HandleExceptionAsync(IExecutionContext executionContext, HttpErrorResponseException exception)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.ExceptionHandler`1.HandleAsync(IExecutionContext executionContext, Exception exception)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.ErrorHandler.ProcessExceptionAsync(IExecutionContext executionContext, Exception exception)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.ErrorHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.Signer.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.EndpointDiscoveryHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.EndpointDiscoveryHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.RetryHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.RetryHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.BaseAuthResolverHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.ErrorCallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.MetricsHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Calamari.Aws.Deployment.Conventions.UpdateEcsServiceConvention.InstallAsync(RunningDeployment deployment) in C:\BuildAgent\work\62728692c7c35200\source\Calamari.Aws\Deployment\Conventions\UpdateEcsServiceConvention.cs:line 71
Fri, May 15th 2026 13:00:25 +01:00  Error       at Calamari.Aws.Deployment.Conventions.UpdateEcsServiceConvention.Install(RunningDeployment deployment) in C:\BuildAgent\work\62728692c7c35200\source\Calamari.Aws\Deployment\Conventions\UpdateEcsServiceConvention.cs:line 35
Fri, May 15th 2026 13:00:25 +01:00  Error       at Calamari.Deployment.ConventionProcessor.RunInstallConventions(IEnumerable`1 installConventions) in C:\BuildAgent\work\62728692c7c35200\source\Calamari.Shared\Deployment\ConventionProcessor.cs:line 80
Fri, May 15th 2026 13:00:25 +01:00  Error       at Calamari.Deployment.ConventionProcessor.RunConventions(Boolean logExceptions) in C:\BuildAgent\work\62728692c7c35200\source\Calamari.Shared\Deployment\ConventionProcessor.cs:line 31
Fri, May 15th 2026 13:00:25 +01:00  Error       at Calamari.Aws.Commands.UpdateEcsServiceCommand.Execute(String[] commandLineArguments) in C:\BuildAgent\work\62728692c7c35200\source\Calamari.Aws\Commands\UpdateEcsServiceCommand.cs:line 37
Fri, May 15th 2026 13:00:25 +01:00  Error       at Calamari.Program.ResolveAndExecuteCommand(IContainer container, CommonOptions options) in C:\BuildAgent\work\62728692c7c35200\source\Calamari\Program.cs:line 86
Fri, May 15th 2026 13:00:25 +01:00  Error       at Calamari.Common.CalamariFlavourProgram.Run(String[] args) in C:\BuildAgent\work\62728692c7c35200\source\Calamari.Common\CalamariFlavourProgram.cs:line 77
Fri, May 15th 2026 13:00:25 +01:00  Error       --Inner Exception--
Fri, May 15th 2026 13:00:25 +01:00  Error       Exception of type 'Amazon.Runtime.Internal.HttpErrorResponseException' was thrown.
Fri, May 15th 2026 13:00:25 +01:00  Error       Amazon.Runtime.Internal.HttpErrorResponseException
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.HttpWebRequestMessage.ProcessHttpResponseMessage(HttpResponseMessage responseMessage)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.HttpWebRequestMessage.GetResponseAsync(CancellationToken cancellationToken)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.HttpHandler`1.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.Unmarshaller.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Error       at Amazon.Runtime.Internal.ErrorHandler.InvokeAsync[T](IExecutionContext executionContext)
Fri, May 15th 2026 13:00:25 +01:00  Fatal       The remote script failed with exit code 100
Fri, May 15th 2026 13:00:25 +01:00  Fatal       The action Update Amazon ECS Service on ECS Target failed

More Information

Initial Ticket (Internal) - https://octopuscd.zendesk.com/agent/tickets/204648
RnD Thread (Internal) - https://octopusdeploy.slack.com/archives/CNHBHV2BX/p1778847734540179
Reproduction (Internal) - https://octopus-operations.octopus.app/app#/Spaces-422/projects/aws-ecs/deployments/process/steps?actionId=a4bd4ebc-8412-4dde-a4b9-fef8b953c72d&parentStepId=5987de82-37e8-451a-97bd-2513b4c64244

Workaround

You would need to have a package ID without a forward slash in it, if using an ECR feed this would look like the below with the repository name being a name without a forward slash in it (green box being valid,red box being invalid):

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugThis issue represents a verified problem we are committed to solving

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions