#67699 TC06 — Average visit cost includes the deposit top-up of the¶
filtered employee: with the Team members filter preset to Employee_1, the
Average visit cost card counts that employee's deposit top-up of the
period in its numerator (440 / 2 = 220) instead of dropping it (120).
test_analytics_average_visit_cost_deposit_topup_positive
Failures in last 30 days: 13
Generated at 2026-10-08 03:53 MSK
Last failure: 2026-10-02 11:50 MSK
Filter: pipelines with sandbox_biz_erp ∈ {master, testops-dev} AND autotests_branch ∈ {master, main} only (testops-dev — daytime ticks since 2026-08-05).
🏥 7 of these ran under the quarantine tier: XFAIL, pipeline stayed green, excluded from the red statistics and incidents (see Карантин).
By exception class:
- AssertionError — 8
- TimeoutError — 3
- SigninRedirectMissingError — 2
Failure signatures (grouped by exception + full message):
AssertionError — 8 occurrence(s) across 4 pipeline(s) (🏥 2 of 8 quarantined)¶
AssertionError: The Sales Total card value should show the amount 440 — the service revenue of Appointment_1 (100) and of Appointment_2 (140) plus DepositTopup_1 (200), all counted for Employee_1
Expected: Decimal('440.00')
but: was Decimal('0.00')
Stacktrace:
suite/yclients/biz/erp/web/analytics/test_analytics_average_visit_cost_deposit_topup_positive_pw.py:100 in test_analytics_average_visit_cost_deposit_topup_positive
lib/utils/hamcrest/__init__.py:20 in assert_that
lib/utils/hamcrest/__init__.py:35 in _assert_match
Seen in: - altegio/biz.erp#224303 — shard 7 — launch 164200 (×1, last 2026-09-18 05:40 MSK) - altegio/biz.erp#224296 — shard 6 — launch 164167 (×1, last 2026-09-18 03:41 MSK) - altegio/biz.erp#224043 — shard 5 — launch 163610 (×3, last 2026-09-17 05:41 MSK) - altegio/biz.erp#224036 — shard 3 — launch 163577 (×3, last 2026-09-17 04:16 MSK)
🏥 SigninRedirectMissingError — 1 occurrence(s) across 1 pipeline(s)¶
autotests.lib.exception.SigninRedirectMissingError: login-XHR завершился со статусом 200, но редиректа со /signin/ не случилось за 30 с — подозрение на фронт biz.erp
--- причина (playwright) ---
Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for navigation to "<function ImplToApiMapping.wrap_handler.<locals>.wrapper_func at 0x7fa0b1f8f7e0>" until 'commit'
navigated to "https://erp-testops-dev.infra.altegio.cloud/signin/"
navigated to "https://erp-testops-dev.infra.altegio.cloud/signin/"
navigated to "https://erp-testops-dev.infra.altegio.cloud/signin/JTJGdGltZXRhYmxlJTJGMTYzNjYxODklMkY="
navigated to "https://erp-testops-dev.infra.altegio.cloud/signin/JTJGdGltZXRhYmxlJTJGMTYzNjYxODklMkY="
navigated to "https://erp-testops-dev.infra.altegio.cloud/signin/JTJGdGltZXRhYmxlJTJGMTYzNjYxODklMkY="
============================================================
Stacktrace:
suite/yclients/biz/erp/web/analytics/test_analytics_average_visit_cost_deposit_topup_positive_pw.py:70 in test_analytics_average_visit_cost_deposit_topup_positive
lib/apps_pw/yclients/biz/erp/web/pages/guest/signin.py:115 in sign_in
Seen in: - altegio/biz.erp#227749 — shard 1 — launch 171616 (×1, last 2026-10-02 08:20 MSK)
🏥 SigninRedirectMissingError — 1 occurrence(s) across 1 pipeline(s)¶
autotests.lib.exception.SigninRedirectMissingError: login-XHR завершился со статусом 200, но редиректа со /signin/ не случилось за 30 с — подозрение на фронт biz.erp
--- причина (playwright) ---
Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for navigation to "<function ImplToApiMapping.wrap_handler.<locals>.wrapper_func at 0x7fc062808a40>" until 'commit'
navigated to "https://erp-testops-dev.infra.altegio.cloud/signin/"
navigated to "https://erp-testops-dev.infra.altegio.cloud/signin/"
navigated to "https://erp-testops-dev.infra.altegio.cloud/signin/JTJGdGltZXRhYmxlJTJGMTYzNzAzODMlMkY="
navigated to "https://erp-testops-dev.infra.altegio.cloud/signin/JTJGdGltZXRhYmxlJTJGMTYzNzAzODMlMkY="
navigated to "https://erp-testops-dev.infra.altegio.cloud/signin/JTJGdGltZXRhYmxlJTJGMTYzNzAzODMlMkY="
============================================================
Stacktrace:
suite/yclients/biz/erp/web/analytics/test_analytics_average_visit_cost_deposit_topup_positive_pw.py:70 in test_analytics_average_visit_cost_deposit_topup_positive
lib/apps_pw/yclients/biz/erp/web/pages/guest/signin.py:115 in sign_in
Seen in: - altegio/biz.erp#227787 — shard 1 — launch 171752 (×1, last 2026-10-02 11:50 MSK)
🏥 TimeoutError — 1 occurrence(s) across 1 pipeline(s)¶
TimeoutError: timed out
pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query (timed out)')
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query (timed out)')
[SQL: INSERT INTO documents (user_id, salon_id, storage_id, category_id, visit_id, record_id, type, comment, date_create, date, number, services_count) VALUES (%(user_id)s, %(salon_id)s, %(storage_id)s, %(category_id)s, %(visit_id)s, %(record_id)s, %(type)s, %(comment)s, %(date_create)s, %(date)s, %(number)s, %(services_count)s)]
[parameters: {'user_id': 20305037, 'salon_id': 16118059, 'storage_id': 0, 'category_id': 0, 'visit_id': 15082911, 'record_id': 20309325, 'type': 7, 'comment': '', 'date_create': datetime.datetime(2026, 9, 28, 22, 28, 14, 995698), 'date': '0000-00-00 00:00:00', 'number': 1, 'services_count': 1}]
(Background on this error at: http://sqlalche.me/e/e3q8)
Stacktrace:
lib/fixture/salon/__init__.py:196 in salon_with_entities
lib/preconditions/__init__.py:86 in create
data/db/orm/__init__.py:365 in add_entities
data/db/orm/__init__.py:73 in call_with_session
data/db/orm/__init__.py:245 in add_all
Seen in: - altegio/biz.erp#226698 — shard 5 — launch 169315 (×1, last 2026-09-28 22:50 MSK)
🏥 TimeoutError — 1 occurrence(s) across 1 pipeline(s)¶
playwright._impl._errors.TimeoutError: Locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for locator("[class*=\"erp-nav-menu-mode-switch-footer-button\"]:visible, [class*=\"erp-nav-menu-mode-switch-mini__button\"]:visible").first
- locator resolved to <div data-locator="nav_menu_mode_switch_btn" class="erp-nav-menu-mode-switch-footer-button">…</div>
- attempting click action
2 × waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
- <div class="v-error-modal v-error-modal--unauthorized v-error-modal__fade-enter-active v-error-modal__fade-enter-to">…</div> intercepts pointer events
- retrying click action
- waiting 20ms
2 × waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
- <div class="v-error-modal v-error-modal--unauthorized v-error-modal__fade-enter-active v-error-modal__fade-enter-to">…</div> intercepts pointer events
- retrying click action
- waiting 100ms
58 × waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
- <div class="v-error-modal v-error-modal--unauthorized">…</div> intercepts pointer events
- retrying click action
- waiting 500ms
AssertionError: Failed to navigate through menu item MENU_ITEM_ANALYTICS_KEY_INDICATORS. Browser diagnostics:
{
"url": "https://erp-testops-dev.infra.altegio.cloud/timetable/16357978/#mode=1&main_date=2026-10-01",
"observer": {
"installed": true,
"first_js_error": null,
"js_errors": [],
"js_errors_by_location": {},
"xhr_queue": []
},
"page_errors": [],
"console": [
{
"type": "warning",
"text": "Web Vitals polyfill required",
"location": {
"url": "https://erp-testops-dev.infra.altegio.cloud/js/vue-vite-app/chunk-a6Oo9G3y2.js",
"lineNumber": 0,
"columnNumber": 11968
}
},
{
"type": "warning",
"text": "Web Vitals polyfill required",
"location": {
"url": "https://erp-testops-dev.infra.altegio.cloud/js/vue-vite-app/chunk-a6Oo9G3y2.js",
"lineNumber": 0,
"columnNumber": 11968
}
},
{
"type": "error",
"text": "Failed to load resource: the server responded with a status of 401 ()",
"location": {
"url": "https://erp-testops-dev.infra.altegio.cloud/api/v1/company/16357978/timetable/schedule?dates[]=2026-09-30&dates[]=2026-10-02&dates[]=2026-10-03&dates[]=2026-10-04&dates[]=2026-10-05&dates[]=2026-10-06&dates[]=2026-10-07&include[]=tt_day_schedule_resource_instances.resource_instance.resource&include[]=tt_day_schedule_resource_instances.resource_instance&include[]=tt_day_schedule_resource_instances&include[]=tt_day_schedule_masters.master&include[]=tt_day_schedule_masters&include[]=tt_day_schedule_masters.tt_day_master_grid_status&schedule_for_week=1",
"lineNumber": 0,
"columnNumber": 0
}
},
{
"type": "error",
"text": "E",
"location": {
"url": "https://erp-testops-dev.infra.altegio.cloud/js/vue-vite-app/shared-7LVHk0ho.js",
"lineNumber": 1,
"columnNumber": 9424
}
},
{
"type": "error",
"text": "Failed to load resource: the server responded with a status of 401 ()",
"location": {
"url": "https://erp-testops-dev.infra.altegio.cloud/api/v1/company/16357978/timetable/attendance_day?dates[]=2026-09-30&dates[]=2026-10-02&dates[]=2026-10-03&dates[]=2026-10-04&dates[]=2026-10-05&dates[]=2026-10-06&dates[]=2026-10-07&include[]=records&include[]=records.comer&include[]=records.comer.vehicle&include[]=records.services&include[]=records.labels&include[]=records.master&include[]=records.client&include[]=records.client.first_succ... [truncated]
Stacktrace:
lib/apps_pw/yclients/biz/erp/web/components/menu.py:214 in click_menu
lib/apps_pw/yclients/biz/erp/web/components/menu.py:228 in _click_menu
lib/apps_pw/yclients/biz/erp/web/pages/user.py:464 in _ensure_administration_mode_for_legacy_menu
suite/yclients/biz/erp/web/analytics/test_analytics_average_visit_cost_deposit_topup_positive_pw.py:79 in test_analytics_average_visit_cost_deposit_topup_positive
lib/apps_pw/yclients/biz/erp/web/components/menu.py:216 in click_menu
Seen in: - altegio/biz.erp#227722 — shard 1 — launch 171516 (×1, last 2026-10-02 04:26 MSK)
🏥 TimeoutError — 1 occurrence(s) across 1 pipeline(s)¶
playwright._impl._errors.TimeoutError: Locator.click: Timeout 30000ms exceeded.
Call log:
- waiting for locator("[class*=\"erp-nav-menu-mode-switch-footer-button\"]:visible, [class*=\"erp-nav-menu-mode-switch-mini__button\"]:visible").first
- locator resolved to <div data-locator="nav_menu_mode_switch_btn" class="erp-nav-menu-mode-switch-footer-button">…</div>
- attempting click action
2 × waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
- <div class="v-error-modal v-error-modal--unauthorized v-error-modal__fade-enter-active v-error-modal__fade-enter-to">…</div> intercepts pointer events
- retrying click action
- waiting 20ms
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
- <div class="v-error-modal v-error-modal--unauthorized v-error-modal__fade-enter-active v-error-modal__fade-enter-to">…</div> intercepts pointer events
2 × retrying click action
- waiting 100ms
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
- <div class="v-error-modal v-error-modal--unauthorized">…</div> intercepts pointer events
55 × retrying click action
- waiting 500ms
- waiting for element to be visible, enabled and stable
- element is visible, enabled and stable
- scrolling into view if needed
- done scrolling
- <div class="v-error-modal v-error-modal--unauthorized">…</div> intercepts pointer events
- retrying click action
- waiting 500ms
AssertionError: Failed to navigate through menu item MENU_ITEM_ANALYTICS_KEY_INDICATORS. Browser diagnostics:
{
"url": "https://erp-testops-dev.infra.altegio.cloud/timetable/16361580/#mode=1",
"observer": {
"installed": true,
"first_js_error": null,
"js_errors": [],
"js_errors_by_location": {},
"xhr_queue": []
},
"page_errors": [],
"console": [
{
"type": "warning",
"text": "Web Vitals polyfill required",
"location": {
"url": "https://erp-testops-dev.infra.altegio.cloud/js/vue-vite-app/chunk-a6Oo9G3y2.js",
"lineNumber": 0,
"columnNumber": 11968
}
},
{
"type": "error",
"text": "Failed to load resource: the server responded with a status of 401 ()",
"location": {
"url": "https://erp-testops-dev.infra.altegio.cloud/api/v1/company/16361580/timetable/attendance_day?dates%5B%5D=2026-10-01&include%5B%5D=records&include%5B%5D=records.services&include%5B%5D=records.labels&include%5B%5D=records.master&include%5B%5D=records.client&include%5B%5D=records.client.first_successful_visit&include%5B%5D=records.comer&include%5B%5D=records.comer.vehicle&include%5B%5D=records.resource_instances.resource&include%5B%5D=records.resource_instances&include%5B%5D=records.acceptance_free&include%5B%5D=records.attendance_service_items.attendance_service_composite.composite_service&include%5B%5D=records.duration_details&include%5B%5D=activities&include%5B%5D=activities.service&include%5B%5D=activities.labels&include%5B%5D=activities.master&include%5B%5D=activities.resource_instances.resource&include%5B%5D=activities.resource_instances&include%5B%5D=activities.duration_details&new_timetable_attendance_from_legacy=1&_=1790908188374",
"lineNumber": 0,
"columnNumber": 0
}
},
{
"type": "error",
"text": "Failed to load resource: the server responded with a status of 401 ()",
"location": {
"url": "https://erp-testops-dev.infra.altegio.cloud/api/v1/company/16361580/staff/workload?start_date=2026-10-01&end_date=2026-10-31&_=1790908188373",
"lineNumber": 0,
"columnNumber": 0
}
},
{
"type": "error",
"text": "Faile... [truncated]
Stacktrace:
lib/apps_pw/yclients/biz/erp/web/components/menu.py:214 in click_menu
lib/apps_pw/yclients/biz/erp/web/components/menu.py:228 in _click_menu
lib/apps_pw/yclients/biz/erp/web/pages/user.py:464 in _ensure_administration_mode_for_legacy_menu
suite/yclients/biz/erp/web/analytics/test_analytics_average_visit_cost_deposit_topup_positive_pw.py:79 in test_analytics_average_visit_cost_deposit_topup_positive
lib/apps_pw/yclients/biz/erp/web/components/menu.py:216 in click_menu
Seen in: - altegio/biz.erp#227735 — shard 1 — launch 171549 (×1, last 2026-10-02 06:23 MSK)