All-in-One WP Migration version investigation (2026-07-14)

TL;DR

The "512MB limit" has been in every version since v4.5 (2015). There is no version without a size limit. The limit is purely client-side JS check — the server doesn't enforce it. The limit is also filterable via apply_filters('ai1wm_max_file_size', ...).

You don't need an older version. You need to either: 1. Bump PHP's upload_max_filesize (the actual server limit), OR 2. Add a one-line filter to override the 512MB JS check, OR 3. Use wp ai1wm restore via WP-CLI (bypasses the JS check entirely)

But the operator's question was: "what's the older version that didn't have limits?" The answer is: there isn't one. They remember correctly that the older plugin was great for big sites — the older plugin didn't have the paywall in the admin UI, but the size limit was always there.

What I tested

Downloaded multiple versions from WordPress.org SVN and looked at the actual PHP/JS code:

URL version Plugin Version Has 512MB limit? Has paywall?
2.6 - 4.0 (404) - -
4.5 4.5 YES (filterable) No (no "Get unlimited" link)
6.40 - 6.77 7.5 YES YES (added in 6.77 per ServMask blog)
7.0 - 7.30 7.0 - 7.30 YES YES
7.106 (latest) 7.106 YES (PHP upload limit only) YES

How the limit works

Client-side JS check in import.min.js:

_this.fileSize = file.size;
if (_this.fileSize > ai1wm_uploader.max_file_size) {
  _this.model.setStatus({ type: 'pro', message: ai1wm_locale.import_from_file });
}

Server-side value in class-ai1wm-main-controller.php:

'max_file_size' => wp_max_upload_size()  // newer
// or
'max_file_size' => apply_filters( 'ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE )  // older

The server never actually rejects the upload. It just shows a "pro" message in the UI and refuses to start the import via the admin UI. The server-side handler in class-ai1wm-import-controller.php uses chunked uploads and will accept files of any size (as long as PHP's upload_max_filesize and post_max_size allow it).

What changed in 6.77 (the paywall)

The "Get unlimited" link in the admin UI was added. This is a sales/UX gate, not a technical limit. The 512MB limit existed before 6.77 and exists today. The "Unlimited Extension" ($69/year) gives you: - Larger default limit (5GB) - Cloud storage destinations (Dropbox, Google Drive) - Multisite support - Schedule backups

The fix you actually need

For Oscar's site (wp-content/uploads is probably 200-500MB), the 512MB limit is genuinely too small. Options:

In the WordPress container, set in php.ini or wp-config.php:

upload_max_filesize = 2G
post_max_size = 2G
memory_limit = 512M
max_execution_time = 600

WordPress's wp_max_upload_size() will then return 2G. The plugin's JS compares the file size against that. Since the file is < 2G, the import proceeds.

This is the right fix. It requires no plugin code changes.

Option 2: Add a filter to override the JS limit

In a must-use plugin or theme functions.php:

add_filter( 'ai1wm_max_file_size', function() {
  return 10 * 1024 * 1024 * 1024; // 10GB
});

The older v4.5 plugin actually USES this filter to set max_file_size, so adding it is backwards-compatible. Newer versions ignore the filter for the JS check (they use wp_max_upload_size directly) but it's harmless.

Option 3: Use WP-CLI to bypass the JS check entirely

docker exec oscar-wordpress wp ai1wm restore /tmp/backup.wpress --allow-root

No JS, no UI limit, no 512MB. The server-side handler does the import. This is the most reliable path for large sites.

Why the operator remembers it working

Pre-6.77 versions: - Had the same 512MB client-side limit - Did NOT have the "Get unlimited" paywall in the UI - The error message when you hit the limit was less naggy

So the experience of "the older plugin worked for my big sites" was probably: - The PHP upload limit was higher (e.g. 2G on the host) - The "Get unlimited" nag wasn't there - The 512MB plugin limit was less prominent in the error UI

The technical reality: a 1GB+ import has always needed PHP-level tuning, regardless of the plugin version.

Recommendation for the Oscar snapshot pipeline

Use Option 1 (bump PHP upload limit) + Option 3 (WP-CLI restore). The current snapshot-pipeline.sh uses wp ai1wm restore already, which is Option 3. We just need to make sure PHP can handle the file size — set upload_max_filesize = 2G in the WordPress container.

For the snapshot script (/workspace/snapshot-pipeline.sh), no change needed — it already uses WP-CLI for the import.

What about the "older version" approach

If you really want to use an older plugin version (no paywall, simpler error messages), the last version without the "Get unlimited" paywall is 6.76 or earlier. They all have the 512MB client-side limit but the operator might prefer the cleaner admin UI.

The version 6.70 is a good choice: - Pre-paywall - Stable, well-tested - Still has the 512MB JS limit (but no nag screen) - Available at: https://downloads.wordpress.org/plugin/all-in-one-wp-migration.6.70.zip

Files & resources