exercism / exercism/website

Aws::S3::Errors::AccessDenied: User: arn:aws:sts::681735686245:assumed-role/webserver-ecs/5abf77559a7d4f31907023229343358f is not authorized to perform: s3:DeleteObject on resource: "arn:aws:s3:::exercism-uploads/32VAaXRrVkVqwmZUYAuCqBkd" because no identity-based policy allows the s...

Open
#9,401 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Ruby
Stars
548
Forks
168
Avg merge
1d 3h
Merged PRs (30d)
28

Description

## Error

```
User: arn:aws:sts::681735686245:assumed-role/webserver-ecs/5abf77559a7d4f31907023229343358f is not authorized to perform: s3:DeleteObject on resource: "arn:aws:s3:::exercism-uploads/32VAaXRrVkVqwmZUYAuCqBkd" because no identity-based policy allows the s3:DeleteObject action (Aws::S3::Errors::AccessDenied)
```

## Stack trace

```
seahorse/client/plugins/raise_response_errors.rb:17 in call
aws-sdk-s3/plugins/sse_cpk.rb:24 in call
aws-sdk-s3/plugins/dualstack.rb:21 in call
aws-sdk-s3/plugins/accelerate.rb:43 in call
aws-sdk-core/plugins/checksum_algorithm.rb:169 in call
aws-sdk-core/plugins/jsonvalue_converter.rb:16 in call
aws-sdk-core/plugins/invocation_id.rb:16 in call
aws-sdk-core/plugins/idempotency_token.rb:19 in call
aws-sdk-core/plugins/param_converter.rb:26 in call
seahorse/client/plugins/request_callback.rb:89 in call
```

## Tracking Details
- **Project**: exercism-rails
- **Sentry**: [Aws::S3::Errors::AccessDenied: User: arn:aws:sts::681735686245:assumed-role/webserver-ecs/5abf77559a7d4f31907023229343358f is not authorized to perform: s3:DeleteObject on resource: "arn:aws:s3:::exercism-uploads/32VAaXRrVkVqwmZUYAuCqBkd" because no identity-based policy allows the s...](https://thalamus-ai.sentry.io/issues/141404602/)
- **Culprit**: API::Users::ProfilePhotosController#destroy
- **First seen:** Aug 18, 2026

Contributor guide

Open the contributing guide

Research direction

Start at API::Users::ProfilePhotosController#destroy and trace the S3 delete call associated with the reported stack trace. Inspect how the webserver-ecs role is configured and verify the intended profile-photo deletion path; done means the operation no longer raises AccessDenied under the intended role.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, ruby
Domain
backend, cloud
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.