Installer package is terminated after 600 seconds

Hi,

I have an installer package that runs a postinstall script. The script can take a long time to complete, as one thing it does is copy about 10-30 GB of files using the rsync tool.

We noticed on macOS 15 that the installer would fail almost exactly 10 minutes after it started. Looking in the /var/log/install.log, I see a message like this:

2025-07-01 12:54:32-07 Work-M1 package_script_service[21562]: PackageKit: Terminating PKInstallTask(pid:21573). Task has exceeded its 600 seconds of runtime.

This does not happen in my testing on macOS 12 (Monterey)

I have a few questions about this:

A) Is this documented, and which OS introduced this?

B) Is there a way a developer can extend or disable the time limit via a setting in the installer package. Or if not, is there a way end end user can disable it temporarily on their system?

Thanks, Andrew

Answered by DTS Engineer in 847527022

You are correct that macOS 15 introduced a script timeout, with a default value of 10 minutes. I believe you can override this using BundleInstallScriptTimeout property, as documented in the pkgbuild man page man page.

Having said that, copying tens of gigabytes of data in an installer script is pretty extreme. Can you explain more about why you’re doing that? Is this data embedded in your installer package and you’re just copying it into place? Or are you getting this data from elsewhere?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

You are correct that macOS 15 introduced a script timeout, with a default value of 10 minutes. I believe you can override this using BundleInstallScriptTimeout property, as documented in the pkgbuild man page man page.

Having said that, copying tens of gigabytes of data in an installer script is pretty extreme. Can you explain more about why you’re doing that? Is this data embedded in your installer package and you’re just copying it into place? Or are you getting this data from elsewhere?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Thanks for that. I see the documentation now on Sequoia in the man pages.

It doesn't seem like I can specify the timeout for a package postinstall script, only if I specify a script for a specific bundle. Would you agree?

Does a dictionary in a component plist need to refer to an app bundle? I don't really have a bundle to install for the package choice.

To answer your question, there are very large libraries of audio content available for our program, and the install scripts help them with various options for installing/using this content - it can definitely take longer than 10 minutes.

Installer package is terminated after 600 seconds
 
 
Q