Known Limitations & Edge Cases
JetStack AI handles the majority of HubSpot asset import and deployment scenarios reliably. However, some edge cases exist due to HubSpot API constraints, architectural decisions, or the inherent complexity of cross-portal asset replication. This page documents every known limitation along with its impact and any available workarounds.
Template Module Name Parsing
Section titled “Template Module Name Parsing”Issue: The template module regex uses a \w+ pattern to match module names. This pattern matches letters, numbers, and underscores, but does not match hyphens. Modules with hyphenated names (e.g., my-custom-module) may fail during template parsing.
Impact: This affects three locations in the codebase. Pages, emails, or templates that reference a hyphenated module name may import with the module reference unresolved, which means the module’s content will not be included in the parsed asset.
Workaround: If you encounter a template module that was not imported as a dependency, check whether its name contains hyphens. You can manually import the missing module separately and re-deploy.
Partial List Import for Dynamic Lists
Section titled “Partial List Import for Dynamic Lists”Issue: The list import endpoint is missing the includeFilters=true parameter. Without this parameter, dynamic list filter definitions may not be fully fetched from the HubSpot API.
Impact: Dynamic lists (active lists) may be imported without their complete filter criteria. When deployed, these lists may behave differently than expected because their enrollment rules are incomplete.
Workaround: After deploying a dynamic list, verify its filter criteria in the destination portal’s HubSpot UI. If filters are missing, manually recreate them in HubSpot based on the source portal’s list configuration.
Email Campaign Group ID Timing
Section titled “Email Campaign Group ID Timing”Issue: When a new email is created in HubSpot via the API, the associated campaign group ID is not returned immediately. List filters that reference an email’s campaign group may not resolve correctly if the email was just created in the same deployment batch.
Impact: Lists with filters based on “has received email” or similar email engagement criteria may not correctly reference newly deployed emails during the same deployment.
Workaround: If a list’s filter references an email that was deployed in the same batch, re-save the list in HubSpot after deployment completes to trigger filter resolution with the now-available campaign group ID.
V2 Form Fields Silently Discarded
Section titled “V2 Form Fields Silently Discarded”Issue: HubSpot’s v3 Forms API does not support all fields that exist in the v2 API. Specifically, followUpId and dependentFieldFilters are silently discarded when a form is created through the v3 endpoint.
Impact: Forms that use follow-up actions or dependent field visibility logic will lose these configurations during deployment. The form will be created, but without the advanced field logic.
Workaround: After deploying forms with v2-specific features, manually reconfigure followUpId and dependent field filters in the destination portal’s HubSpot form editor.
Stale Destination Cache During Concurrent Deployments
Section titled “Stale Destination Cache During Concurrent Deployments”Issue: During deployment, JetStack AI caches asset names from the destination portal to avoid ID conflicts. When multiple deployments run concurrently against the same destination portal, this cache may become stale — one deployment’s newly created assets are not visible to the other deployment’s cache.
Impact: In rare cases, a concurrent deployment may create a duplicate asset or fail to resolve a reference to an asset created by the parallel deployment.
Workaround: Avoid running multiple deployments to the same destination portal simultaneously. If you must run concurrent deployments, JetStack AI falls back to a direct HubSpot search when the cache misses, which mitigates most conflicts. Review the deployment results for any unresolved references.
Property Group Creation Timing
Section titled “Property Group Creation Timing”Issue: When deploying assets that reference custom properties, the property groups those properties belong to must exist before the properties can be created. In some edge cases, property group creation has not completed before property creation begins.
Impact: Properties may fail to create if their target group does not yet exist in the destination portal.
Workaround: If property creation fails with a “group not found” error, re-run the deployment. The property group created during the first attempt will already exist, and the properties will succeed on the second pass. Alternatively, use Bulk Create Properties to set up property groups in advance.
No Batch API Calls
Section titled “No Batch API Calls”Issue: Assets are fetched and created one at a time through the HubSpot API rather than using batch endpoints.
Impact: Large imports (100+ assets) and large deployments take longer than theoretically necessary. Each asset requires its own API request/response cycle.
Workaround: No user-facing workaround. Performance is acceptable for typical implementation sizes (10-50 assets). For very large implementations, expect longer processing times and monitor progress in the Activity Log.
No Resumable Imports
Section titled “No Resumable Imports”Issue: If an import task fails partway through (e.g., due to a network interruption or API outage), there is no mechanism to resume from where it stopped. The import must be restarted from the beginning.
Impact: For large imports, a mid-process failure means re-processing assets that were already successfully imported. However, individual asset failures within a running import do not block other assets — only a task-level failure requires a full restart.
Workaround: For critical large imports, consider importing in smaller batches (e.g., 20-30 assets at a time) to reduce the impact of any single failure.
Circular Dependency References
Section titled “Circular Dependency References”Issue: When two assets reference each other (e.g., a workflow adds contacts to a list, and that list filters by workflow enrollment), a circular dependency exists. JetStack AI detects the cycle and handles it gracefully, but the asset that closes the cycle may have an incomplete reference.
Impact: The circular reference is recorded but may not be fully resolved during deployment. The deployed asset may need manual adjustment to complete the circular link.
Workaround: After deployment, check any assets flagged with circular dependencies. Manually update the unresolved reference in the destination portal’s HubSpot UI.
IANA Timezone Rejection in List Filters
Section titled “IANA Timezone Rejection in List Filters”Issue: HubSpot’s API rejects IANA-format timezone identifiers (e.g., America/New_York) in certain list filter operations, requiring legacy format (e.g., US/Eastern) instead. Additionally, some time-ranged filter configurations include referenceType: "MONTH" which is only valid for display, not for API POST operations.
Impact: Lists with time-ranged filters using IANA timezones may fail during deployment on the first attempt.
Workaround: JetStack AI automatically retries with timezone remapping when this error is detected. The America/New_York format is converted to US/Eastern, and invalid reference types are transformed. In most cases, the retry succeeds without user intervention. If it does not, check the Activity Log for the specific timezone value and manually adjust the list filter in the destination portal.
Currency Property Edge Case
Section titled “Currency Property Edge Case”Issue: HubSpot properties with fieldType: "currency" require special handling. The v3 Properties API does not directly support a “currency” field type. Instead, JetStack AI transforms these to a number type with an appropriate display mode, which requires an additional v2 API call.
Impact: Currency properties may appear as plain number fields in the destination portal if the v2 API call fails or the portal’s currency settings differ from the source.
Workaround: After deployment, verify currency-type properties in the destination portal. If they appear as plain number fields, manually update the field type to “Currency” in HubSpot’s property settings and confirm the correct currency format is selected.
Summary Table
Section titled “Summary Table”| Limitation | Severity | Auto-Mitigated |
|---|---|---|
| Hyphenated module names in templates | Medium | No |
| Partial dynamic list filters | High | No |
| Email campaign group ID timing | Low | No |
| V2 form fields discarded | Medium | No |
| Stale destination cache | Low | Partially (search fallback) |
| Property group timing | Low | No (succeeds on retry) |
| No batch API calls | Low | N/A |
| No resumable imports | Medium | N/A |
| Circular dependency references | Low | Partially (detected, flagged) |
| IANA timezone rejection | Medium | Yes (auto-retry) |
| Currency property edge case | Low | Partially (v2 fallback) |
Next Steps
Section titled “Next Steps”- How Import Works — Understanding the import pipeline
- How Deployment Works — Understanding the deployment pipeline
- Import Troubleshooting — Resolving import-specific errors
- Deployment Troubleshooting — Resolving deployment-specific errors