Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Bug]: CrawlerRunConfig.clone() drops fallback_fetch_function, so deep crawls never use it

オープン 初心者向け
#2,379 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@siva23367 がすでに取り組んでいます。

2026年10月19日 から。

  • #2385 @Parsiffall1 による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
78/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python
領域
backend

調査の方向性

バグは CrawlerRunConfig.clone() にあります。このメソッドは to_dict() から設定を再構築しますが、to_dict() は fallback_fetch_function を省略しています。まず CrawlerRunConfig の clone と to_dict メソッドを読み、issue のスニペットがクローン後に None を返すことを確認してください。clone がコーラブルを保持し、取得に失敗した deep crawl のページが arun() と同じ方法でフォールバックに到達すれば完了です。clone(stream=True) を経てもフィールドが保持されることを確認するテストを追加してください。

索引モデルが issue の本文から書いたものです。

説明

crawl4ai version

0.9.5 (same on 0.9.0)

Expected Behavior

CrawlerRunConfig.clone() returns a copy with every field, fallback_fetch_function included. BFS, DFS and BestFirst deep crawls clone the run config for every batch (config.clone(deep_crawl_strategy=None, stream=...)), so a configured fallback should also apply to deep-crawled pages.

Current Behavior

clone() rebuilds the config from to_dict(), and to_dict() leaves fallback_fetch_function out, so the clone has fallback_fetch_function=None. In a deep crawl, a page whose fetch raises (or is blocked) never reaches the fallback, while the same page fetched with arun() / arun_many() does.

Is this reproducible?

Yes

Code snippets
from crawl4ai import CrawlerRunConfig


async def fallback(url: str) -> str:
    return "<html>...</html>"


config = CrawlerRunConfig(fallback_fetch_function=fallback)
print(config.fallback_fetch_function)  # <function fallback ...>
print(config.clone(stream=True).fallback_fetch_function)  # None
Suggested fix

Carry callables over in clone(), for example by copying fallback_fetch_function (and any other non-serializable field) from self onto the clone unless it is passed in kwargs. A subclass of CrawlerRunConfig whose clone() copies the field over works as a workaround.

主要言語
Python
スター
85.4k
フォーク
8.9k
平均マージ
5日 7時間
マージ済み PR(30日)
23

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

unclecode/crawl4ai のほかの issue

unclecode/crawl4ai の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。