[Bug]: CrawlerRunConfig.clone() drops fallback_fetch_function, so deep crawls never use it
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
Línea de trabajo
El error está en CrawlerRunConfig.clone(), que reconstruye la configuración a partir de to_dict(), y to_dict() omite fallback_fetch_function. Empieza leyendo los métodos clone y to_dict de CrawlerRunConfig y confirma que el fragmento del issue devuelve None después de clonar. Se considera terminado cuando el clone conserva el callable, de modo que una página de deep crawl cuya obtención falla llegue al fallback de la misma forma que arun(); añade una prueba que compruebe que el campo sobrevive a clone(stream=True).
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 85.4k
- Forks
- 8.9k
- Merge medio
- 5 d 7 h
- PR fusionados (30 d)
- 23
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de unclecode/crawl4ai
-
[Bug]: Since 0.9.1, Linux launches chrome-headless-shell instead of ChromiumPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
[Bug]: BestFirstCrawlingStrategy fetches a full batch past max_pagesPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
unclecode/crawl4ai#2381 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
[Bug]: Docker memory guard reads host RAM when no container limit is set — cgroup v2 "max" defeats get_container_memory_percentPosiblemente ocupada @Battleplus la tomó hace 56 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
unclecode/crawl4ai#2123 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
[Bug]: After a streamed deep crawl is stopped early, the next deep crawl returns only the start pagePosiblemente ocupada @PiUnknown la tomó hace 4 días. Abierto
Dificultad 4/5 1-2 días Aptitud para principiantes 12/100
unclecode/crawl4ai#2380 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
[Bug]: PDF URI links are silently discarded by PDFContentScrapingStrategy due to Links schema mismatchPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
Todos los issues de unclecode/crawl4ai
Issues similares
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 66/100
AlexsLemonade/scpca-docs#518 ·
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
rocketride-org/rocketride-server#2705 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Metabuilder-Labs/tokenjam#786 ·
Los mantenedores suelen responder en 1 día
-
prototype(verifier_token): map disallowed warning to contraindicated before composite precedence checkPosiblemente ocupada @drk-ram la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
agentrust-io/trace-spec#582 ·
Los mantenedores suelen responder en 1 día
-
area:cli priority:low refactor size:small
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
RonaldHensbergen/composable-data-stack#906 ·
Los mantenedores suelen responder en 1 día