Latest KrafterPro Design System Update - Not Happy
I'm having nothing but trouble with my older KrafterPro designed websites as I update them to the newer Design System. So many glitches, things that don't work, missing presets, etc. It's not going well.
I just tried to update another site using the "Merge" feature and got this error
Server error 500. Check PHP error log.
How to Fix: Server Error 500 During "Merge" After KrafterPRO Design Update
This is exactly how I proceed whenever I encounter this error. My first thoughts always go straight to memory limits and timeouts.
Please make sure to always create a full backup before making any changes. It is best to use a backup plugin of your choice—ideally one you already have experience with.
If you encountered a Server Error 500 while using the "Merge" feature after the recent KrafterPRO design update, you are likely hitting a server resource bottleneck.
When you trigger a design merge, WordPress has to process a large amount of data simultaneously—compiling CSS, updating design tokens, and rewriting database entries. If your server environment runs out of memory or time during this process, it abruptly shuts down the script, resulting in a 500 Internal Server Error.
In 95% of cases, this is caused by either a PHP Memory Limit exhaustion or a Server Timeout (FastCGI/Execution Time).
Here is how you can easily fix this by increasing your server's limits.
Step 1: Increase PHP Memory Limit & Execution Time via wp-config.php
You need to give WordPress more breathing room to process the update.
- Connect to your site via FTP or use the File Manager in your hosting control panel.
- Locate and edit the
wp-config.phpfile in your WordPress root folder. - Add the following lines right before the line that says
/* That's all, stop editing! Happy publishing. */:
define( 'WP_MEMORY_LIMIT', '512M' );
define( 'WP_MAX_MEMORY_LIMIT', '1024M' );
set_time_limit(300);
Step 2: Raise Server Limits via .htaccess (For Apache Servers)
If your host allows overriding PHP settings via .htaccess, adding these rules will prevent the script from timing out.
- Open your
.htaccessfile (found in the same root folder aswp-config.php). - Add these lines at the very top:
apache
php_value max_execution_time 300
php_value max_input_time 300
php_value memory_limit 512M
php_value post_max_size 128M
php_value upload_max_filesize 128M
Verwende Code mit Vorsicht.
Step 3: Check for FastCGI / Nginx Timeouts (The 30-Second Trap)
Does the error happen exactly 30 or 60 seconds after you click "Merge"? If so, your server is killing the process early due to a FastCGI or Nginx timeout limitation.
Even if you increase the PHP limits in Step 1 and 2, the web server software itself might have a hard limit.
- If you use Plesk / cPanel: Go to your PHP Settings for the domain and look for
max_execution_timeorfastcgi_read_timeout. Change this value manually to300. - If you are on Managed Hosting: Reach out to your hosting provider's support and ask them to: "Please temporarily increase the FastCGI read timeout and PHP max_execution_time to 300 seconds so I can run a heavy database/design merge."
Step 4: Clear Temporary Data (Transients)
If a previous merge attempt crashed midway, broken data fragments might be cluttering your database, making subsequent attempts even heavier.
- Install a database optimization plugin like WP-Optimize or Advanced Database Cleaner.
- Clear out Expired Transients and Object Cache.
- Clear your browser cache or try running the merge in an Incognito Window.
Frank Schlatter Thanks. I've been following my Cloudways server settings for DIVI 5 based on this published page - https://www.elegantthemes.com/blog/divi-resources/divi-hosting-requirements
Cloudways has a nice interface that allows me to set these parameters for the entire server, of which I have 2, both running only WordPress, DIVI 5 websites, PHP 8.4, MariaDB 10.11.
I have changed the parameters to match your recommendations better and will see how things go.
Let me know if you see any other settings I should change.
Looks good from what I can see. Just try it out and see if that is already enough.
You can always play around with the execution limit, upload size, and memory limit. You can set those higher.
You can also use "display errors" to show error messages, which allows you to look up solutions online.
Just give it a try.
Write down the original values before changing them, as well as the new values you change them to. That can be very helpful.
AND reset the display errors back after.
If adjusting those doesn't work, always contact the hosting provider. They can often help much faster because they know their hardware and environment much better, and they also have far more control than we do as users through Plesk or any other management tool.
Best regards,
Frank
Recommended PHP Settings for WordPress & Divi 5:
- memory_limit: 512M (Maximum memory allocation for PHP scripts)
- max_execution_time: 300 (Maximum script execution time - 5 minutes)
- upload_max_filesize: 128M (Maximum size allowed for a single uploaded file)
- post_max_size: 128M (Maximum limit for all form data combined)
- max_input_vars: 5000 (Maximum number of allowed variables)
php
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
- max_input_vars = 5000: This is arguably the most critical value for KrafterPRO. JSON files for comprehensive design systems contain hundreds or thousands of individual variables (colors, spacing, fonts). If this is left at the default server value (usually 1000), PHP will simply stop processing the variables halfway through. Setting it to 5000 gives the server plenty of breathing room.
- memory_limit = 512M: Reading, unpacking, and saving complex JSON structures into the WordPress database happens entirely in the RAM. While Divi 5 is faster than Divi 4, a powerful framework like KrafterPRO requires a brief performance spike during import. 512 MB prevents the dreaded "Memory Exhausted" crash.
- max_execution_time = 300: Because Divi 5 needs to validate all presets during the process, the import can take anywhere from 30 to 60 seconds depending on the server hardware. Giving it 300 seconds (5 minutes) guarantees the script won't hit a timeout.
- upload_max_filesize = 128M: Raw JSON files for variables are rarely larger than a few megabytes. Therefore, 128M is more than enough to ensure the file is never blocked due to its size.
Summary: As long as these values (especially max_input_vars and memory_limit) are active, the KrafterPRO import should run smoothly and without errors.