zai-org / zai-org/feedback

[Bug] chat.z.ai model fallback offers MORE overloaded model when busy

Open
#216 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
22
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Bug Description

When using GLM-5 or GLM-Turbo on chat.z.ai and the model is at capacity, the system offers to switch to an alternative model that is also (or even more) overloaded.


Problem Behavior

Current (Broken) Flow:
User selects GLM-5 or Turbo
        ↓
Model gets busy / at capacity
        ↓
System shows: "Switch to GLM-5.1?" (or 5.2)
        ↓
User switches → NEW model is ALSO overloaded!
        ↓
Frustration loop continues...
Specific Scenarios Reported:
Using Model Offered Fallback Problem
GLM-5 Switch to 5.1 5.1 also overloaded
GLM-Turbo Switch to 5.1/5.2 Fallback also busy
GLM-5.1 Switch to 5.2 5.2 even MORE overloaded
User Quote:

"When using glm5 or turbo version and it got busy I am offered to switch to 5.1 and if using 5.1 then to 5.2. It is insane to offer model that is even more overloaded."

Franta Vědomý svobody/Štěstíčko, 1:25 AM


Why This Is Problematic

User Experience Issues:
  1. False Hope 🚫

    • Suggesting a switch implies the alternative will work
    • When it doesn't, user feels tricked/frustrated
  2. Wasted Time ⏱️

    • User switches, waits for new model to load
    • Gets same error → has to switch again or give up
  3. Confusion Loop 🔄

    • 5 → 5.1 (busy) → 5.2 (busier) → ???
    • No escape from the overload situation
  4. Erodes Trust 💔

    • Users stop believing system suggestions
    • May abandon platform entirely during peak times

Root Cause Analysis

Likely Technical Issue:
// Current logic (probably):
if (currentModel.isBusy()) {
  suggestFallback(getAlternativeModel());  // Doesn't check if fallback is ALSO busy!
}

// Should be:
if (currentModel.isBusy()) {
  const fallback = findAvailableModel();
  if (fallback && !fallback.isBusy()) {
    suggestFallback(fallback);
  } else {
    showQueueOption(); // or show wait message
  }
}
Possible Causes:
Cause Likelihood
Fallback doesn't check load status 🔴 Very High
Load balancing not real-time 🔴 High
Static fallback list (not dynamic) 🟠 Medium
No capacity check before suggestion 🔴 Very High
All models share same backend pool 🟠 Medium

Suggested Solutions

Solution A: Smart Fallback (Recommended)

Only offer fallback if it has actual available capacity:

1. Check current model load → Busy?
2. Query other models' load status
3. Only suggest models with < 80% capacity
4. If NO models available → Show queue/wait option instead
Solution B: Honest Status Display

Show actual load before switch:

┌─────────────────────────────────────┐
│ GLM-5 is currently at full capacity │
│                                     │
│ Available alternatives:            │
│ • GLM-5.1 — 🟡 High Load (87%)     │
│ • GLM-5.2 — 🔴 Full Capacity      │
│ • Turbo    — 🟢 Available         │
│                                     │
│ [Wait in Queue] [Try Anyway]       │
└─────────────────────────────────────┘
Solution C: Queue Instead of Switch

When ALL models busy:

  • Don't offer misleading switches
  • Show: "All models currently busy. Position in queue: #3"
  • Auto-submit when capacity opens
  • Related to Feature Request #191
Solution D: Priority-Based Routing
  • Free/Paid users get different priority
  • Show expected wait time per model
  • Let user make informed choice

Expected vs Actual

Aspect Expected Actual
Fallback suggestion Working alternative Also-overloaded model
Information given Honest availability Misleading suggestion
User action result Can continue chatting Same error again
Peak-time experience Managed expectations Frustration loop

Reporter Information

  • Platform: chat.z.ai web application
  • Reporter: Franta Vědomý svobody/Štěstíčko
  • Timestamp: 1:25 AM
  • Models Affected: GLM-5, GLM-Turbo, GLM-5.1, GLM-5.2

Severity: P1 High

  • Affects users during peak times (when they need it most)
  • Creates frustrating loop with no escape
  • Simple fix: check fallback availability before suggesting
  • Relates to/could use same fix as Feature Request #191

Labels Suggested:

bug, model-switching, load-balancing, ux, peak-times, fallback


This bug creates a particularly bad UX during high-traffic periods when users need the platform most.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files or tests are named. Start by reviewing related Feature Request #191, then locate the chat.z.ai model-switching and capacity-check entry points. Done means fallback suggestions reflect availability and provide a wait or queue path when alternatives are overloaded.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
ai, backend-api-design, web-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.