{"record":{"id":"22f4b949ab0dcad5","repo":"remotion-dev/remotion","slug":"partial-success-the-s3-putbucketownershipcontrols","errorCode":null,"errorMessage":"PARTIAL SUCCESS: The s3:PutBucketOwnershipControls was found, but the s3:PutBucketPublicAccessBlock permission is not given. Since April 2023, more AWS permissions are required to create an S3 bucket. You need to update your user policy to continue. You need to update your user policy to continue. See https://remotion.dev/docs/lambda/s3-public-access for instructions on how to resolve this issue.","messagePattern":"PARTIAL SUCCESS: The s3:PutBucketOwnershipControls was found, but the s3:PutBucketPublicAccessBlock permission is not given\\. Since April 2023, more AWS permissions are required to create an S3 bucket\\. You need to update your user policy to continue\\. You need to update your user policy to continue\\. See https://remotion\\.dev/docs/lambda/s3-public-access for instructions on how to resolve this issue\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/lambda-client/src/create-bucket.ts","lineNumber":59,"sourceCode":"\t\t\t}\n\n\t\t\tthrow err;\n\t\t}\n\n\t\ttry {\n\t\t\tawait getS3Client({\n\t\t\t\tregion,\n\t\t\t\tcustomCredentials: null,\n\t\t\t\tforcePathStyle,\n\t\t\t\trequestHandler,\n\t\t\t}).send(\n\t\t\t\tnew DeletePublicAccessBlockCommand({\n\t\t\t\t\tBucket: bucketName,\n\t\t\t\t}),\n\t\t\t);\n\t\t} catch (err) {\n\t\t\tif ((err as Error).message.includes('Access Denied')) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'PARTIAL SUCCESS: The s3:PutBucketOwnershipControls was found, but the s3:PutBucketPublicAccessBlock permission is not given. Since April 2023, more AWS permissions are required to create an S3 bucket. You need to update your user policy to continue. You need to update your user policy to continue. See https://remotion.dev/docs/lambda/s3-public-access for instructions on how to resolve this issue.',\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthrow err;\n\t\t}\n\n\t\tlet usedBucketPolicy = false;\n\t\ttry {\n\t\t\tconst policy = JSON.stringify({\n\t\t\t\tVersion: '2012-10-17',\n\t\t\t\tStatement: [\n\t\t\t\t\t{\n\t\t\t\t\t\tSid: 'PublicReadGetObject',\n\t\t\t\t\t\tEffect: 'Allow',\n\t\t\t\t\t\tPrincipal: '*',\n\t\t\t\t\t\tAction: 's3:GetObject',\n\t\t\t\t\t\tResource: `arn:aws:s3:::${bucketName}/*`,","sourceCodeStart":41,"sourceCodeEnd":77,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/lambda-client/src/create-bucket.ts#L41-L77","documentation":"Partial-success state in bucket creation: DeleteBucketOwnershipControls succeeded (so s3:PutBucketOwnershipControls is present) but DeletePublicAccessBlock returned Access Denied, meaning s3:PutBucketPublicAccessBlock is missing. The bucket is now half-configured; the user must complete the IAM policy before continuing.","triggerScenarios":"createBucket got past the ownership-controls step but the public-access-block delete was denied — IAM policy has the ownership permission but not the public-access-block permission.","commonSituations":"Partially-updated IAM policy; policy that lists ownership but omits public-access-block.","solutions":["Add s3:PutBucketPublicAccessBlock (and the full set: s3:PutBucketPolicy, s3:PutBucketAcl) to the IAM user policy per the linked guide","Retry getOrCreateBucket after the policy update"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  await getOrCreateBucket({...});\n} catch (err) {\n  if ((err as Error).message.startsWith('PARTIAL SUCCESS')) {\n    // add s3:PutBucketPublicAccessBlock to the IAM policy, then retry\n  }\n  throw err;\n}","preventionTips":["Apply the complete Remotion IAM policy, not a subset","After a partial-success failure, update the policy before retrying to avoid re-polluting the bucket"],"tags":["aws","iam","s3","permissions"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}