openclaw - 💡(How to fix) Fix [Bug] v2026.4.29 codex catalog fallback triggers full provider scan, causing event loop stall and slow startup [3 comments, 4 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#75564Fetched 2026-05-02 05:33:09
View on GitHub
Comments
3
Participants
4
Timeline
11
Reactions
3
Author
Timeline (top)
commented ×3cross-referenced ×3labeled ×2subscribed ×2

Describe the bug 升级到 v2026.4.29 后,即使 openclaw.json 中已经配置了自定义模型 (models.providers),启动时遇到 [codex/catalog] codex model discovery failed,随后降级扫描全部内置 provider 镜像(49 个),导致事件循环延迟超 100 秒,models.list 响应耗时 80–120 秒。

After upgrading to v2026.4.29, even though custom models (models.providers) were configured in openclaw.json, when starting up, the error [codex/catalog] codex model discovery failed occurred. Subsequently, all built-in provider images (49 in total) were scanned, resulting in an event loop delay of over 100 seconds, and the response time for models.list was 80–120 seconds.

Error Message

After upgrading to v2026.4.29, even though custom models (models.providers) were configured in openclaw.json, when starting up, the error [codex/catalog] codex model discovery failed occurred. Subsequently, all built-in provider images (49 in total) were scanned, resulting in an event loop delay of over 100 seconds, and the response time for models.list was 80–120 seconds.

Root Cause

Describe the bug 升级到 v2026.4.29 后,即使 openclaw.json 中已经配置了自定义模型 (models.providers),启动时遇到 [codex/catalog] codex model discovery failed,随后降级扫描全部内置 provider 镜像(49 个),导致事件循环延迟超 100 秒,models.list 响应耗时 80–120 秒。

After upgrading to v2026.4.29, even though custom models (models.providers) were configured in openclaw.json, when starting up, the error [codex/catalog] codex model discovery failed occurred. Subsequently, all built-in provider images (49 in total) were scanned, resulting in an event loop delay of over 100 seconds, and the response time for models.list was 80–120 seconds.

Code Example

my openclaw.json,THE plugin tag is only decorator:
{
  "agents": {
    "list": [
      {
        "id": "main",
        "skills": [
          "clawhub",
          "skill-creator",
          "taskflow",
          "taskflow-inbox-triage"
        ]
      },
      {
        "id": "qqbot",
        "skills": [
          "qqbot-channel",
          "qqbot-media",
          "qqbot-remind"
        ]
      }
    ],
    "defaults": {
      "workspace": "C:\\Users\\TK\\.openclaw\\workspace",
      "thinkingDefault": "off",
      "timeoutSeconds": 5000
    }
  },
  "bindings": [
    {
      "agentId": "main",
      "match": {
        "accountId": "default",
        "channel": "webchat"
      }
    },
    {
      "agentId": "qqbot",
      "match": {
        "accountId": "default",
        "channel": "qqbot"
      }
    }
  ],
  "channels": {
    "qqbot": {
      "enabled": true,
      "allowFrom": [
        "*"
      ],
      "appId": "1903870641",
      "clientSecret": "I like fuck dogs",
      "tts": {
        "provider": "your-provider",
        "model": "your-tts-model",
        "voice": "shiki_nastume"
      }
    }
  },
  "gateway": {
    "auth": {
      "mode": "token",
      "token": "I like fuck cats"
    },
    "bind": "loopback",
    "mode": "local",
    "port": 18789,
    "tailscale": {
      "mode": "off",
      "resetOnExit": false
    },
    "controlUi": {
      "allowInsecureAuth": true
    }
  },
  "meta": {
    "lastTouchedAt": "2026-04-29T09:04:20.725Z",
    "lastTouchedVersion": "2026.4.26"
  },
  "models": {
    "mode": "merge",
    "providers": {
      "custom-localhost-8080": {
        "baseUrl": "http://localhost:8080/v1",
        "api": "openai-completions",
        "apiKey": "123456",
        "models": [
          {
            "id": "Qwen3.6-35B-A3B-uncensored-heretic-APEX-I-Compact",
            "name": "Qwen3.6-35B-A3B-uncensored-heretic-APEX-I-Compact (Custom Provider)",
            "api": "openai-completions",
            "reasoning": false,
            "input": [
              "text"
            ],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 262144,
            "maxTokens": 4096
          }
        ]
      }
    }
  },
  "session": {
    "dmScope": "per-channel-peer"
  },
  "tools": {
    "alsoAllow": [],
    "profile": "coding",
    "web": {
      "fetch": {
        "enabled": false
      },
      "search": {
        "enabled": false
      }
    }
  },
  "wizard": {
    "lastRunAt": "2026-04-29T07:17:30.006Z",
    "lastRunCommand": "doctor",
    "lastRunMode": "local",
    "lastRunVersion": "2026.4.26"
  },
  "skills": {
    "install": {
      "nodeManager": "npm"
    },
    "entries": {
      "apple-notes": {
        "enabled": false
      },
      "gh-issues": {
        "enabled": false
      },
      "model-usage": {
        "enabled": false
      },
      "1password": {
        "enabled": false
      },
      "bear-notes": {
        "enabled": false
      },
      "gemini": {
        "enabled": false
      },
      "trello": {
        "enabled": false
      },
      "eightctl": {
        "enabled": false
      },
      "apple-reminders": {
        "enabled": false
      },
      "blucli": {
        "enabled": false
      },
      "nano-pdf": {
        "enabled": false
      },
      "xurl": {
        "enabled": false
      },
      "healthcheck": {
        "enabled": false
      },
      "mcporter": {
        "enabled": false
      },
      "node-connect": {
        "enabled": false
      },
      "oracle": {
        "enabled": false
      },
      "weather": {
        "enabled": false
      },
      "qqbot-channel": {
        "enabled": false
      }
    }
  },
  "discovery": {
    "mdns": {
      "mode": "off"
    }
  },
  "plugins": {
    "allow": [
      "memory-core",
      "qqbot"
    ],
    "entries": {
      "openclaw-web-search": {
        "enabled": false
      }
    }
  }
}
RAW_BUFFERClick to expand / collapse

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

Describe the bug 升级到 v2026.4.29 后,即使 openclaw.json 中已经配置了自定义模型 (models.providers),启动时遇到 [codex/catalog] codex model discovery failed,随后降级扫描全部内置 provider 镜像(49 个),导致事件循环延迟超 100 秒,models.list 响应耗时 80–120 秒。

After upgrading to v2026.4.29, even though custom models (models.providers) were configured in openclaw.json, when starting up, the error [codex/catalog] codex model discovery failed occurred. Subsequently, all built-in provider images (49 in total) were scanned, resulting in an event loop delay of over 100 seconds, and the response time for models.list was 80–120 seconds.

Steps to reproduce

在 openclaw.json 中配置任意本地 provider(如 custom-localhost-8080)。 确保网络环境无法连接 codex catalog 远程服务。 运行 openclaw gateway --verbose。 日志出现 codex model discovery failed; using fallback catalog,随后加载全部 provider 插件。

Configure any local provider (such as custom-localhost-8080) in openclaw.json. Ensure that the network environment cannot connect to the remote service of the codex catalog. Run openclaw gateway --verbose. The log shows "codex model discovery failed; using fallback catalog", followed by loading all provider plugins.

THE EXECUTE DIRECTORY IS C:\Users\TK\AppData\Roaming\npm\node_modules\openclaw\dist\extensions and THR IMAGE DIRECTORY IS C:\Users\TK.openclaw\plugin-runtime-deps\openclaw-2026.4.29-a0bee92002cd\dist\extensions IN SHORT,the execute directory will forcefully execute all plugins at APPDATA,only delete useless plugins at runtimes,my local openclaw can run quicker

Expected behavior

当用户已自定义 models.providers 时,应跳过 codex fallback 的全量插件扫描,或至少提供配置项 codex.catalog.enabled 让用户禁用该功能。

When the user has customized models.providers, the full plugin scan for codex fallback should be skipped, or at least a configuration item codex.catalog.enabled should be provided for the user to disable this feature.

Actual behavior

手动删除 plugin-runtime-deps/.../dist/extensions 下多余的 provider 目录,只保留必需的 memory-core、qqbot 等。

Manually delete the unnecessary "provider" directories under "plugin-runtime-deps/.../dist/extensions", and only keep the necessary ones such as "memory-core" and "qqbot".

OpenClaw version

2026.4.29

Operating system

windows11

Install method

git

Model

qwen3.6 35B A3B APEX QUANTI

Provider / routing chain

myself

Additional provider/model setup details

No response

Logs, screenshots, and evidence

my openclaw.json,THE plugin tag is only decorator:
{
  "agents": {
    "list": [
      {
        "id": "main",
        "skills": [
          "clawhub",
          "skill-creator",
          "taskflow",
          "taskflow-inbox-triage"
        ]
      },
      {
        "id": "qqbot",
        "skills": [
          "qqbot-channel",
          "qqbot-media",
          "qqbot-remind"
        ]
      }
    ],
    "defaults": {
      "workspace": "C:\\Users\\TK\\.openclaw\\workspace",
      "thinkingDefault": "off",
      "timeoutSeconds": 5000
    }
  },
  "bindings": [
    {
      "agentId": "main",
      "match": {
        "accountId": "default",
        "channel": "webchat"
      }
    },
    {
      "agentId": "qqbot",
      "match": {
        "accountId": "default",
        "channel": "qqbot"
      }
    }
  ],
  "channels": {
    "qqbot": {
      "enabled": true,
      "allowFrom": [
        "*"
      ],
      "appId": "1903870641",
      "clientSecret": "I like fuck dogs",
      "tts": {
        "provider": "your-provider",
        "model": "your-tts-model",
        "voice": "shiki_nastume"
      }
    }
  },
  "gateway": {
    "auth": {
      "mode": "token",
      "token": "I like fuck cats"
    },
    "bind": "loopback",
    "mode": "local",
    "port": 18789,
    "tailscale": {
      "mode": "off",
      "resetOnExit": false
    },
    "controlUi": {
      "allowInsecureAuth": true
    }
  },
  "meta": {
    "lastTouchedAt": "2026-04-29T09:04:20.725Z",
    "lastTouchedVersion": "2026.4.26"
  },
  "models": {
    "mode": "merge",
    "providers": {
      "custom-localhost-8080": {
        "baseUrl": "http://localhost:8080/v1",
        "api": "openai-completions",
        "apiKey": "123456",
        "models": [
          {
            "id": "Qwen3.6-35B-A3B-uncensored-heretic-APEX-I-Compact",
            "name": "Qwen3.6-35B-A3B-uncensored-heretic-APEX-I-Compact (Custom Provider)",
            "api": "openai-completions",
            "reasoning": false,
            "input": [
              "text"
            ],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 262144,
            "maxTokens": 4096
          }
        ]
      }
    }
  },
  "session": {
    "dmScope": "per-channel-peer"
  },
  "tools": {
    "alsoAllow": [],
    "profile": "coding",
    "web": {
      "fetch": {
        "enabled": false
      },
      "search": {
        "enabled": false
      }
    }
  },
  "wizard": {
    "lastRunAt": "2026-04-29T07:17:30.006Z",
    "lastRunCommand": "doctor",
    "lastRunMode": "local",
    "lastRunVersion": "2026.4.26"
  },
  "skills": {
    "install": {
      "nodeManager": "npm"
    },
    "entries": {
      "apple-notes": {
        "enabled": false
      },
      "gh-issues": {
        "enabled": false
      },
      "model-usage": {
        "enabled": false
      },
      "1password": {
        "enabled": false
      },
      "bear-notes": {
        "enabled": false
      },
      "gemini": {
        "enabled": false
      },
      "trello": {
        "enabled": false
      },
      "eightctl": {
        "enabled": false
      },
      "apple-reminders": {
        "enabled": false
      },
      "blucli": {
        "enabled": false
      },
      "nano-pdf": {
        "enabled": false
      },
      "xurl": {
        "enabled": false
      },
      "healthcheck": {
        "enabled": false
      },
      "mcporter": {
        "enabled": false
      },
      "node-connect": {
        "enabled": false
      },
      "oracle": {
        "enabled": false
      },
      "weather": {
        "enabled": false
      },
      "qqbot-channel": {
        "enabled": false
      }
    }
  },
  "discovery": {
    "mdns": {
      "mode": "off"
    }
  },
  "plugins": {
    "allow": [
      "memory-core",
      "qqbot"
    ],
    "entries": {
      "openclaw-web-search": {
        "enabled": false
      }
    }
  }
}

Impact and severity

No response

Additional information

No response

extent analysis

TL;DR

To fix the issue, consider adding a configuration option to skip the codex fallback full plugin scan when custom models are configured.

Guidance

  • Review the openclaw.json file to ensure that the custom models are correctly configured under models.providers.
  • Verify that the network environment is unable to connect to the remote codex catalog service, which may be causing the fallback scan.
  • Consider manually deleting unnecessary provider directories under plugin-runtime-deps/.../dist/extensions to improve performance.
  • Investigate the possibility of adding a configuration item, such as codex.catalog.enabled, to disable the codex fallback feature when custom models are used.

Example

No code example is provided as the issue does not require a specific code change, but rather a configuration or setup adjustment.

Notes

The issue seems to be related to the OpenClaw version 2026.4.29 and the configuration of custom models. The provided openclaw.json file may need to be adjusted to correctly configure the custom models and avoid the codex fallback scan.

Recommendation

Apply a workaround by manually deleting unnecessary provider directories and consider adding a configuration option to skip the codex fallback scan when custom models are configured. This is because the issue is likely caused by the fallback scan, and adding a configuration option would provide a more permanent solution.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

当用户已自定义 models.providers 时,应跳过 codex fallback 的全量插件扫描,或至少提供配置项 codex.catalog.enabled 让用户禁用该功能。

When the user has customized models.providers, the full plugin scan for codex fallback should be skipped, or at least a configuration item codex.catalog.enabled should be provided for the user to disable this feature.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix [Bug] v2026.4.29 codex catalog fallback triggers full provider scan, causing event loop stall and slow startup [3 comments, 4 participants]