Diagnostics and Fixing Errors on 1C-Bitrix: Prevention

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

Our competencies:

Frequently Asked Questions

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.phpexception_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:

  • debugtrue
  • handled_errors_typesE_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:

  1. 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.

  2. Check the event log. Administrative panel → Settings → Tools → Event Log. The b_event_log table stores errors with timestamps, source module, and stack trace. Filter by severity ERROR and WARNING.

  3. 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.

  4. Disable third-party modules. Via bitrix/modules/ rename the suspicious module (e.g., partner.modulepartner.module_disabled). If the error disappears, the culprit is found. For components, similarly replace the component call with a stub.

  5. 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 entry when 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 STATUS for 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.