All notes

PR 10927-grok-4-7

Do not merge it. The new upload code adds a CRC32 checksum and does not turn it off.

Reviewed 8 October 2026Open29 files

Pull request 10927 · Base hotfix/release-0.0.23/wls-21-priority · Head ba4d719d6e5a

Why

No.

This pull request replaces the browser code that uploads files to S3. The target branch is the white-label hotfix.

The new code uses AWS SDK 3.1147. That SDK adds a CRC32 checksum when the client does not set a checksum option. This client does not set that option. SDK version 2 did not send this checksum.

File sizeWhat happens
Under 5 MBOne PutObject request. The request includes the header x-amz-checksum-crc32. The upload can fail at the start.
Over 5 MBA multipart upload with checksum CRC32. The progress bar can move. The complete request can fail if the browser cannot read x-amz-checksum-crc32.

I did not upload a file. GitHub shows a clean merge and no checks.

Affected areas

TopFans and each white-label site from this hotfix use the same upload service. A checksum failure stops uploads in all of these areas.

  • Posts. Video, reel, audio, image, article, and the other post types.
  • Messages. Attachments, automated messages, and comment video.
  • Store. Courses, lessons, downloadables, VIP offers, experiences, and merchandise.
  • Profile and site pages. Portfolio, welcome message, forum, identity, setup, and white-label images.
  • Forms. The file input and the fan CSV import use the same helper.

Before you merge

  1. Set these two options on the S3 client in browser-s3-upload.ts.
  2. Delete src/wls-config.json. The file contains {}. No code reads it.
  3. A person runs the checks below on QA. I did not run them.
requestChecksumCalculation: 'WHEN_REQUIRED',
responseChecksumValidation: 'WHEN_REQUIRED',

The post output name is now statusChange. The parent template uses that name. The SDK loads when an upload starts. A normal page render does not load it.

Human QA

A person must do these checks in a browser on QA. Watch the network tab for x-amz-checksum-crc32 and for a CORS error.

CheckPass when
Post a JPEG under 5 MB on TopFans.The image appears. The progress bar reaches the end. The console has no CORS error.
Post a video over 5 MB on TopFans.The upload finishes. The video plays from the CDN URL.
Cancel that video while it uploads.The upload stops. The post does not keep a broken file.
Send a message with an image, and one with a video.Both messages send. Each file opens.
Import a fan CSV.The file URL is a CDN URL. Confirm accepts it.
Save one store file. Use a lesson video or a downloadable.Save succeeds. The file opens.
Post a video over 5 MB on one white-label site.Same result as the TopFans video.
Open a post and use the enable toggle.The toggle still updates. This covers the statusChange rename.

I read the pull request and the published SDK source. I did not run the app.