Skip to content

improvement(timeouts): sync to 50 min, self-hosted maxed out#3133

Merged
icecrasher321 merged 2 commits intostagingfrom
improvement/timeouts
Feb 4, 2026
Merged

improvement(timeouts): sync to 50 min, self-hosted maxed out#3133
icecrasher321 merged 2 commits intostagingfrom
improvement/timeouts

Conversation

@icecrasher321
Copy link
Collaborator

Summary

  • Reduce sync timeouts to 50 min
  • Not billing enabled should default to enterprise tier timeouts

Type of Change

  • Documentation
  • Other: Self hosted

Testing

Tested manually

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel
Copy link

vercel bot commented Feb 4, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped Feb 4, 2026 7:20pm

Request Review

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 4, 2026

Greptile Overview

Greptile Summary

This PR reduces sync execution timeouts from 60 minutes to 50 minutes for Pro, Team, and Enterprise tiers, and ensures self-hosted deployments without billing enabled default to enterprise-tier timeouts.

Key Changes

  • Reduced DEFAULT_SYNC_TIMEOUTS_SECONDS from 3600s (60 min) to 3000s (50 min) for paid tiers
  • Added logic to getExecutionTimeout() to return enterprise timeouts when isBillingEnabled is false
  • Updated DEFAULT_EXECUTION_TIMEOUT_MS to use enterprise timeout for non-billing-enabled environments
  • Updated documentation and UI plan features to reflect 50-minute limit

Impact

The changes are consistent across code, documentation, and UI. The self-hosted behavior ensures that deployments without billing infrastructure get maximum timeouts (enterprise tier) rather than defaulting to the restrictive free tier.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • The changes are straightforward timeout adjustments with complete consistency across code, documentation, and UI. The logic is simple and the self-hosted fallback to enterprise tier is appropriate for deployments without billing enforcement.
  • No files require special attention

Important Files Changed

Filename Overview
apps/sim/lib/core/execution-limits/types.ts Reduced sync timeout from 60 min (3600s) to 50 min (3000s) for Pro/Team/Enterprise tiers, and added self-hosted fallback to enterprise tier when billing is disabled
apps/docs/content/docs/en/execution/costs.mdx Updated documentation table to reflect new 50-minute sync execution limit for Pro/Team/Enterprise plans
apps/sim/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/subscription/plan-configs.ts Updated UI display text for Pro and Team plan features to show 50-minute sync execution limit

Sequence Diagram

sequenceDiagram
    participant Client as API Client/UI
    participant PreProc as Preprocessing
    participant ExecLimits as getExecutionTimeout()
    participant FeatureFlags as isBillingEnabled
    participant Execution as Workflow Execution
    
    Client->>PreProc: Start workflow execution
    PreProc->>PreProc: Resolve user plan (free/pro/team/enterprise)
    PreProc->>ExecLimits: getExecutionTimeout(plan, type)
    
    alt Billing Disabled (Self-hosted)
        ExecLimits->>FeatureFlags: Check isBillingEnabled
        FeatureFlags-->>ExecLimits: false
        ExecLimits-->>PreProc: Return enterprise timeout (3000s sync / 5400s async)
    else Billing Enabled (Hosted)
        ExecLimits->>FeatureFlags: Check isBillingEnabled
        FeatureFlags-->>ExecLimits: true
        ExecLimits-->>PreProc: Return plan-specific timeout
        Note over ExecLimits,PreProc: Free: 300s/600s<br/>Pro/Team/Enterprise: 3000s/5400s
    end
    
    PreProc->>Execution: Execute with timeout limit
    
    alt Execution completes in time
        Execution-->>Client: Return results
    else Execution exceeds timeout
        Execution-->>Client: TimeoutError
    end
Loading

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@icecrasher321
Copy link
Collaborator Author

@cursor review

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

@icecrasher321 icecrasher321 merged commit 362f4c2 into staging Feb 4, 2026
12 checks passed
@waleedlatif1 waleedlatif1 deleted the improvement/timeouts branch February 5, 2026 03:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant