Skip Navigation
Show nav
Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku Architecture
    • Compute (Dynos)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Developer Tools
    • Command Line
    • Heroku VS Code Extension
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery & Integration (Heroku Flow)
    • Continuous Integration
  • Language Support
    • Node.js
      • Working with Node.js
      • Node.js Behavior in Heroku
      • Troubleshooting Node.js Apps
    • Ruby
      • Rails Support
      • Working with Bundler
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Background Jobs in Python
      • Python Behavior in Heroku
      • Working with Django
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Working with Maven
      • Working with Spring Boot
      • Troubleshooting Java Apps
    • PHP
      • PHP Behavior in Heroku
      • Working with PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
      • Migrating to Heroku Postgres
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • Other Data Stores
  • AI
    • Working with AI
    • Heroku Inference
      • Inference API
      • Quick Start Guides
      • AI Models
      • Inference Essentials
    • Vector Database
    • Model Context Protocol
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
      • Single Sign-on (SSO)
    • Private Spaces
      • Infrastructure Networking
    • Compliance
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
  • Heroku Architecture
  • Platform Policies
  • Limits

Limits

English — 日本語に切り替える

Last updated April 21, 2025

Table of Contents

  • Add-on Attachments
  • API
  • Apps
  • Build
  • Dynos
  • Enterprise Teams
  • Heroku Postgres
  • Logs
  • Network
  • Router
  • SSH Keys

This article is an aggregation of the limits imposed on various components of the Heroku platform.

Limits exist for several reasons. Some exist because of the architecture of the Heroku platform (for example, Heroku stores only the most recent 1500 lines of an app’s log history). Others exist to ensure good platform citizenship (for example, you can’t make more than 4500 Platform API requests per hour).

Many of the limits listed below link to another Dev Center article that provides additional context regarding the limit.

Add-on Attachments

You can attach the same add-on to a maximum of 100 different apps.

Source

API

The Heroku Platform API rate limit is 4500 calls per hour.

Source

Apps

App Names

App names can be a maximum of 30 characters long.

Number of Apps

  • An account can have up to 100 apps.
  • A Heroku Team can have up to 100 apps.
  • An Enterprise Team can have up to 200 apps.
  • A Cedar Private Space can have up to 25 apps.
  • A Fir Private Space can have up to 200 apps.

Custom Domains

A single app can have up to 1,000 custom domains assigned to it.

Source

Webhooks

You can configure up to 10 independent app webhook subscriptions per app, add-on, or pipeline.

Source

Build

Concurrent Builds

Only verified accounts can run builds of multiple apps across an account concurrently.

Verified users without an established payment history can create up to 10 concurrent builds at one time. Verified users with an established payment history can create up to 300 concurrent builds at one time.

Ensure that you’re using Heroku Pipelines correctly for any nearly identical apps. Instead of building multiple versions of the same app to deploy, use a pipeline to build artifacts once, then promote them to multiple apps in your pipeline.

Git Repos

Users are limited to a rolling window of 75 requests to Heroku Git repos per hour, per app, per user.

The uncompressed size of a checkout of HEAD from the repo, combined with the size of restored submodules, cannot exceed 1 GB.

Source

Slug Size

Your slug size is displayed at the end of a successful compile. The maximum slug size (after compression) is 500 MB; most apps should be far below this limit. Once a slug size reaches 300 MB we will warn about larger slug sizes having the potential to cause longer boot times.

Source

Slug Compilation

Slug compilation is limited to 15 minutes.

Source

Build Resources

Builds have a maximum memory limit of ~12 GB. Builds exceeding the limit receive an Out of Memory error and must adjust their app builds to fit within the memory limit.

OCI Image Size

The maximum size for an OCI Image is 5 G. App builds that produce images over this limit fail.

Dynos

Dyno Memory

Different dyno sizes offer different amounts of maximum RAM, see Technical Specifications by Dyno Size.

Dyno Memory and Restarts

The maximum amount of RAM available to your application depends on the dyno size you use. The dyno manager restarts your dyno and logs an R15 error if the memory usage of a:

  • eco, basic or standard-1x dyno reaches 1 GB, two times its quota.
  • standard-2x dyno reaches 2 GB, two times its quota.
  • performance-m dyno reaches 5 GB, two times its quota.
  • performance-l dyno reaches 28 GB, two times its quota.
  • performance-l-ram dyno reaches 36 GB, 1.2 times its quota.
  • performance-xl dyno reaches 74 GB, 1.2 times its quota.
  • performance-2xl dyno reaches 151 GB, 1.2 times its quota.
  • private-s or shield-s dyno reaches its quota of 1 GB.
  • private-m or shield-m dyno reaches its quota of 2.5 GB.
  • private-l or shield-l dyno reaches its quota of 14 GB.
  • private-l-ram or shield-l-ram dyno reaches its quota of 30 GB.
  • private-xl or shield-xl dyno reaches its quota of 62 GB.
  • private-2xl or shield-2xl dyno reaches its quota of 126 GB.

All dynos for Fir-generation apps get restarted when the memory usage reaches 100% of their quota.

Source

Attached One-Off Dyno Timeout

Connections to one-off dynos close after one hour of inactivity, in both input and output. When the connection closes, the dyno gets sent SIGHUP. This idle timeout helps prevent unintended charges from leaving interactive console sessions open and unused.

Source

Detached One-Off Dyno Timeout

Detached one-off dynos are cycled every 24 hours. As a result, a one-off dyno run for a maximum of 24 hours

Source

Concurrent One-Off Dynos

The following limits exist per app:

  • 1 Eco one-off dyno (Eco requires a subscription to the Eco dynos plan)
  • Up to 50 concurrent one-off Basic dynos
  • Up to 50 concurrent one-off Standard dynos
  • Up to 5 concurrent one-off Performance dynos
  • Up to 5 concurrent one-off Private dynos
  • Up to 5 concurrent one-off Shield dynos
  • Up to 255 concurrent one-off Fir dynos

Submit a request to raise this limit for your application.

Source

Spaces

Refer to Private Space Limits.

Config Vars

Config var data, the collection of all keys and values, has a limit of 64 KB per app.

Source

Boot Timeout

The web process in a dyno must bind to its assigned $PORT within 60 seconds.

If your application requires more time to boot, try the boot timeout tool to increase the limit. However, in general, slow boot times make it harder to deploy your application and make recovery from dyno failures slower, so only consider this method as a temporary solution.

Source

Exit Timeout

When a dyno gets killed or restarts, the processes within the dyno have 30 seconds to exit on receiving a SIGTERM. We send a SIGKILL to the process to force an exit after 30 seconds.

Source

Dyno Restart Limits

See Automatic Dyno Restarts and Dyno Crash Restart Policy.

Dyno Scale

The eco and basic dyno types support a maximum of one running dyno per process type. Additionally, applications that use the eco dyno type are limited to a maximum of two concurrently running dynos.

See Dyno Scaling and Process Limits.

Submit a request to raise this limit for your application.

Processes / Threads

The maximum number of processes/threads that can exist in a dyno at any one time depends on [dyno size](dyno-type. See Dyno Scaling and Process Limits.

Enterprise Teams

Membership Limits

Enterprise Team memberships are limited to:

  • 25 members for non-enterprise accounts
  • 500 members for enterprise accounts

Heroku Postgres

Dataclips Row Limits

Dataclips can return up to 100,000 rows.

Source

Dataclips Data Limits

Dataclips can return up to 100mb of data.

Source

Dataclips Query Limit Timeout

Dataclips queries cancel after 10 minutes.

Source

Basic-, Standard-, Premium-, and Enterprise-Tier Limits

The limits associated with each Postgres plan tier are described in the Choosing the Right Heroku Postgres Plan article.

Credentials Limit

The maximum number of credentials Heroku Postgres supports is 120.

Source

We strongly recommend that you use as few credentials as possible for security and operational reasons. Be sure to track where you use the credentials.

Logs

Log History

Heroku only stores the last 1500 lines of log history for apps. To persist more than 1500 lines, use a logging add-on, create your own syslog drain or add a telemetry drain. There’s no log history for apps in Shield spaces with Private Space Logging enabled, or for Fir-generation apps.

Source

Drains

  • You can have up to 5 log drains on any given Cedar-generation app.
  • You can have up to 5 telemetry drains on any given Fir-generation app or space.

Line Length

We split lines generated by dynos that exceed 10000 bytes into 10000 byte chunks without extra trailing newlines. Each chunk is a separate log line.

Source

Build, CI and Release Phase

Log output generated by builds, CI runs and release phase are limited to 300 MB. Any output reaching that limit gets truncated from its beginning, in chunks of 150 MB.

Network

Network Bandwidth

Network bandwidth is soft limited at 2TB per app per month.

Router

HTTP Timeouts

HTTP requests have an initial 30 second window for the web process to return response data. It can be either the completed response or some amount of response data to indicate that the process is active. Processes that fail to send response data within the initial 30-second window see an H12 error in their logs.

After the initial response, each byte sent from the server restarts a rolling 55-second window. A similar 55-second window restarts for every byte sent from the client.

If no data is received from the dyno within the 55-second window the connection terminates and an H15 error is logged.

Similarly, if no data is received from the client within the 55 second window, the connectionterminates and an H28 error is logged.

Source

HTTP Response Buffering

Our routers maintains a 1 MB buffer for responses from the dyno per connection.

Source

HTTP Request Buffering

When processing an incoming request, a router sets up an 8 KB receive buffer and begins reading the HTTP request line and request headers. Each of these can be at most 8 KB in length, but together can be more than 8 KB in total. Requests containing a request line or header line longer than 8KB get dropped by the router without being dispatched.

Source

SSH Keys

All accounts may have a maximum of 50 SSH keys associated with their accounts. If you need more than this you should look into using the Build API.

Keep reading

  • Platform Policies

Feedback

Log in to submit feedback.

Stack Update Policy Load Testing Guidelines

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices