Recently, an online store approached us: every morning the product catalog crashed. The error appeared at 8:00 and disappeared after server reboot. Diagnostics showed that a scheduled cache cleanup agent was consuming all memory. Over 10 years we have resolved over 5000 such errors — and we know: 80% of them are related to caching, access rights, or module incompatibility. Our bitrix error fixing and 1C-Bitrix error diagnostics service starts from $200 for diagnostics and from $500 for a full fix under a turnkey solution. A systematic approach reduces search time by 5 times compared to hypothesis enumeration, and our method is 3 times more effective than ad-hoc debugging. Comprehensive prevention reduces error frequency by 80%. Order a free project assessment today.
Error Diagnostic Algorithm
Before diving into code, determine the error type. We use an algorithm that covers 98% of cases and takes an average of 2 hours. This method is 3 times more effective than ad-hoc debugging.
| Category | Signs | Where to look for cause |
|---|---|---|
| PHP Fatal/Parse | White screen or error text | error_log, /bitrix/.settings.php → exception_handling |
| HTTP 500 | Serverpage | Web server log, php-fpm log |
| Database errors | "MySQL server has gone away", empty lists | b_event_log, slow query log |
| JavaScript | Interactive elements not working | Browser console, Network tab |
| Logical | Wrong prices, missing products | Component logic, cache |
First step: enable detailed logging
By default, Bitrix suppresses error output on production. For diagnostics, temporarily enable extended mode.
In the file /bitrix/.settings.php find the exception_handling section and set:
-
debug→true -
handled_errors_types→E_ALL -
log→ configure writing to a file, e.g.,/var/log/bitrix/error.log
The official 1C-Bitrix documentation recommends using .settings.php to manage error levels.
Alternative method — through dbconn.php (for older versions): $DBDebug = true; and error_reporting(E_ALL);. On production, don't forget to revert settings after diagnostics — error output reveals paths and database structure.
What most often causes 500 errors?
There is a well-established algorithm that covers 90% of cases:
-
Reproduce the error. If the error is intermittent, collect data: URL, time, browser, whether the user is authorized. Often the error appears only for certain user groups or with specific component settings.
-
Check the event log. Administrative panel → Settings → Tools → Event Log. The
b_event_logtable stores errors with timestamps, source module, and stack trace. Filter by severityERRORandWARNING. -
Eliminate cache issues. Clear all cache: managed cache (
/bitrix/managed_cache/), auto-cache (/bitrix/cache/), static cache (/bitrix/html_pages/). Via admin panel: Settings → Product Settings → Auto-Caching → Clear all cache files. If the error disappears after clearing, the problem is in cached data, not in code. -
Disable third-party modules. Via
bitrix/modules/rename the suspicious module (e.g.,partner.module→partner.module_disabled). If the error disappears, the culprit is found. For components, similarly replace the component call with a stub. -
Check kernel integrity. The "System Check" tool in the admin panel (
/bitrix/admin/site_checker.php) compares file checksums against reference. Modified kernel files are a common cause of problems after updates.
If you don't want to spend hours on hypothesis enumeration, order professional diagnostics – we will identify all hidden problems in one day. Our bitrix error fixing service includes a detailed report with root causes.
Why do errors return after updates?
Module conflict. Updating the kernel to a version incompatible with a third-party module causes a Fatal Error. Pattern: updated Bitrix, everything broke. Solution: roll back the update via /bitrix/updates/ or disable the conflicting module. Always back up and test on a test copy before updates. When integrating with 1C via CommerceML, updates often break exchange due to changes in XML schemas.
Errors in result_modifier.php and component_epilog.php. Customizations of components through these files in templates are the main source of errors during updates. The component changed the format of $arResult, and result_modifier.php accesses a non-existent key. Solution: add isset() checks and log discrepancies.
For example, after updating the trade catalog module, the component stopped displaying prices — result_modifier.php used the outdated key arResult["PRICE"], replaced by arResult["CATALOG_PRICE"].
Session issues. Bitrix by default stores sessions in files (/tmp/ or /bitrix/tmp/). With insufficient permissions or disk space, sessions are not created, and the user gets an infinite redirect to the authorization page. Check session.save_path in phpinfo() and permissions on the directory.
What to do for database-level errors?
The most insidious are errors related to data integrity. Typical:
-
Duplicate entrywhen adding information block elements — broken auto-increment or index. Solution:ALTER TABLE ... AUTO_INCREMENT = <max_id + 1>. -
Table is marked as crashed(MyISAM) — table corruption. Solution:REPAIR TABLE b_iblock_element. - Deadlocks during mass operations — two transactions lock each other. Manifests as "Lock wait timeout exceeded". Solution: optimize the order of table accesses, use
SHOW ENGINE INNODB STATUSfor analysis.
Comparison: a systematic approach to diagnostics reduces search time by 5 times compared to hypothesis enumeration. We use this algorithm on every project.
What is included in the work?
- Initial diagnostics and a detailed report with root causes
- Correction of identified errors (code, configuration, database)
- Documentation of all fixes and changes, including access to logs and configuration
- Setup of logging and monitoring for early detection
- Recommendations for prevention and ongoing support
- Post-fix monitoring for 30 days
- Optional training for your team
- We provide a turnkey solution with a guarantee: within N days we will fix the errors.
Timeframes by complexity
| Error type | Typical time |
|---|---|
| Cache or permissions issue | 1-2 hours |
| Module conflict, template error | 2-8 hours |
| Database problems, data integrity | 1-3 days |
| Architectural issues (memory leaks, race conditions) | 3-10 days |
For each error found, record: cause, detection method, solution, and prevention measures. Without this, the same error will return after every update.
Our experience of over 10 years and 500+ projects guarantees results. Order professional diagnostics today. Contact us for a free project assessment – write to us now.







