# Hs project upload fails with server-side 30s validation timeout when project has 99+ modules

**URL:** <https://community.hubspot.com/t/hs-project-upload-fails-with-server-side-30s-validation-timeout-when-project-has-99-modules/153146>\
**Category:** CMS Development\
**Tags:** enterprise\
**Created:** [July 16, 2026, 5:38am UTC](https://community.hubspot.com/t/hs-project-upload-fails-with-server-side-30s-validation-timeout-when-project-has-99-modules/153146 "2026-07-16T05:38:27Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![vitorblsantos-k](https://avatars.discourse-cdn.com/v4/letter/v/94ad74/32.png) [@vitorblsantos-k](https://community.hubspot.com/u/vitorblsantos-k)\
**Post date:** [July 16, 2026, 5:38am UTC](https://community.hubspot.com/t/hs-project-upload-fails-with-server-side-30s-validation-timeout-when-project-has-99-modules/153146/1 "2026-07-16T05:38:27Z")

</div>

I’m experiencing a consistent build failure when running `hs project upload` on a CMS Developer Project that contains **100 modules** in `src/theme/my-theme/templates/shared/`.

**Error message:**

- An error occurred while building project: my-project.

Error: Validation timed out after 30 seconds for module at `@projects/my-project/my-thme/templates/shared/` in build #532.

**Key observations:**

1. The failing module **changes on every attempt** — sometimes it’s `header`, sometimes `footer`, sometimes another module entirely. This confirms the issue is not with any specific module.
2. If I **remove any one module** (bringing the total to 99), the upload succeeds without errors.
3. Setting `--http-timeout=120000` resolved the client-side upload timeout, but the **server-side 30-second validation timeout** persists and cannot be configured from the CLI.
4. The log file generated at `~/.hscli/logs/` contains no additional diagnostic information.

**Environment:**

- CLI version: `@hubspot/cli ^7.11.2`
- Platform version: `2026.03`

Is there a documented limit on the number of modules per CMS project?

Thank you.

---

<div class="post-metadata">

**Author:** ![CornelisSmit](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/cornelissmit/32/225488_2.png) [@CornelisSmit](https://community.hubspot.com/u/CornelisSmit)\
**Post date:** [July 16, 2026, 8:54am UTC](https://community.hubspot.com/t/hs-project-upload-fails-with-server-side-30s-validation-timeout-when-project-has-99-modules/153146/2 "2026-07-16T08:54:28Z")

</div>

Hey! I think the “99-module limit” framing is leading you down the wrong path.

**There’s no documented modules-per-project limit.** I checked the [project structure docs](https://developers.hubspot.com/docs/cms/start-building/introduction/react-plus-hubl/project-structure) and the [CLI project command reference](https://developers.hubspot.com/docs/developer-tooling/local-development/hubspot-cli/project-commands) and neither specifies a cap on module count, file count, or build-validation duration. The published CMS limits are all different in kind (HubL per-render limits, serverless caps, dynamic-page record limits). So the 99→pass / 100→fail boundary isn’t a spec’d rule you’re crossing.

Your own two observations seem to point away from a per-module timeout:

1. The failing module changes every run (header, footer, etc.).
2. Removing any one module fixes it.

If there were a real 30-second per-module validation timeout, it would fail on the same slow module every single time. The fact that it rotates and the hard count boundary. Might rather point to a total build/validation duration ceiling. Your project’s server-side build is landing right around the 30s wall; when it trips, the error just names whichever module happened to be in flight at that instant. Drop one module and total time dips back under → it passes. So it’s likely rather about total work per build, not any individual module and not the number 100 specifically.

This would also explain why `--http-timeout` didn’t help. That flag controls how long the CLI client waits on the socket, but it doesn’t affect how long the build server is allowed to run. There’s no CLI flag that extends the server-side validation window, which matches what you’re seeing.

What I’d actually do:

- **Reduce per-build work** : split the theme into smaller projects/builds, or trim module complexity (heavy fields, large `meta.json`, expensive HubL) so total validation drops well under the wall.
- **Open a Support ticket and reference build #532 directly:** The `~/.hscli/logs/` file is client-side only and won’t show anything useful here. Support can pull the server-side build logs for that build ID and tell you exactly what timed out. That’s the only way to confirm whether it’s a plan-specific/internal limit vs. a genuinely slow build.

---

<div class="post-metadata">

**Author:** ![danielsinewe](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/danielsinewe/32/20100_2.png) [@danielsinewe](https://community.hubspot.com/u/danielsinewe)\
**Post date:** [July 16, 2026, 9:04am UTC](https://community.hubspot.com/t/hs-project-upload-fails-with-server-side-30s-validation-timeout-when-project-has-99-modules/153146/3 "2026-07-16T09:04:22Z")

</div>

I’d also separate the mitigation from the root-cause proof here. The rotating failing module strongly suggests the project is crossing a total server-side validation budget, not that module #100 is special.

For mitigation, I’d try this order:

1. Update `@hubspot/cli` to the latest version and re-run once, just to rule out a client/project packaging issue.
2. Split the shared modules into smaller deployable groups if the project structure allows it.
3. Temporarily remove the heaviest modules first: large field groups, repeated rich text fields, complex HubL, or modules with lots of defaults.
4. If you open Support, include the build ID, exact timestamp, CLI version, project platform version, and the 99-pass / 100-fail reproduction.

The key evidence is that any removed module makes it pass. That is the useful part for Support because it points to aggregate validation time rather than one broken module.

---

<div class="post-metadata">

**Author:** ![Berangere](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/berangere/32/220784_2.png) [@Berangere](https://community.hubspot.com/u/Berangere)\
**Post date:** [July 16, 2026, 9:49am UTC](https://community.hubspot.com/t/hs-project-upload-fails-with-server-side-30s-validation-timeout-when-project-has-99-modules/153146/4 "2026-07-16T09:49:45Z")

</div>

Hi @vitorblsantos-k and welcome back, it’s great to see you again on the HubSpot Community!

Great question, thanks for asking! And thanks @danielsinewe and @CornelisSmit for your contributions!

I can see on the documentation that there is a 50-module limit per theme [for CMS Marketplace themes](https://developers.hubspot.com/docs/cms/marketplace/theme-requirements), but I don’t see any limit specifically for [CMS Developer Projects](https://developers.hubspot.com/docs/cms/start-building/introduction/developer-environment/troubleshooting) (non-Marketplace).

From what I can see, the 30-second validation timeout is a server-side config in CmsThemePipelineMappersConfig.

To help, for the moment, you could split modules across subdirectories or reduce to ≤99 per upload.

In the meantime, I’d love to hear from our Top Expert: Hi @Anton can you think of another workaround for this, please?

Thank you and have a brilliant day!  
Bérangère

_This post was created with the assistance of AI tools_

---

<div class="post-metadata">

**Author:** ![Anton](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/anton/32/103167_2.png) [@Anton](https://community.hubspot.com/u/Anton)\
**Post date:** [July 16, 2026, 11:40am UTC](https://community.hubspot.com/t/hs-project-upload-fails-with-server-side-30s-validation-timeout-when-project-has-99-modules/153146/7 "2026-07-16T11:40:19Z")

</div>

Hey @vitorblsantos-k,

nothing much to add after @danielsinewe and @Berangere recommendations.

Just to confirm from my experience:  
Marketplace themes are limited to a max. of 50 modules.  
Custom themes (at least HubL themes) don’t have such a limitation.  
Furthermore, custom HubL themes are being handled differently by the system, therefore they don’t have such a thing as a timeout while uploading.

As reworking your React theme to a HubL theme most likely won’t be the answer you’d love to hear/read, I’d - like @danielsinewe - recommend to split the theme into smaller parts.  
A different option could be to look into all modules if they’re really required and remove those which aren’t.

Something I’ve done in the past is merging similar modules into a bigger one to save module count (in your case validation time).

Example:  
If you got 3 accordion modules which differ only slightly (maybe layout), I’d add a choice option to the module like “Choose layout”; “option a”,“option b” or “option c”.  
Depending on the selected option, fields might appear/disappear from the page editor and the layout would change as the individual layouts would be wrapped in an if-statement.

Hope this helps

best,  
Anton

---

<div class="post-metadata">

**Author:** ![system](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/system/32/124_2.png) [@system](https://community.hubspot.com/u/system)\
**Post date:** [July 17, 2026, 7:00am UTC](https://community.hubspot.com/t/hs-project-upload-fails-with-server-side-30s-validation-timeout-when-project-has-99-modules/153146/8 "2026-07-17T07:00:17Z")

</div>

Automatically bumped on July 17, 2026, 7:00am UTC



---

<div class="post-metadata">

**Author:** ![Berangere](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/berangere/32/220784_2.png) [@Berangere](https://community.hubspot.com/u/Berangere)\
**Post date:** [July 27, 2026, 5:11pm UTC](https://community.hubspot.com/t/hs-project-upload-fails-with-server-side-30s-validation-timeout-when-project-has-99-modules/153146/12 "2026-07-27T17:11:27Z")

</div>

Hey @vitorblsantos-k, I hope that you are well!

I sent you a DM about this few days ago, we were able to upped the config timeout to 60s.

Let me know if you are still experiencing issues even after this, happy to look into it if needed.

Thanks and have a wonderful day!  
Bérangère
