Resolution Radar · Issue 02
KFA Resolution Radar #2 — Fixes, limits and misleading closures
Research checked 27 October 2026.
A useful answer can be a narrow fix, a way to avoid a destructive default, or a reason not to trust an apparent resolution. This issue examines five public technical records and the evidence behind them. It distinguishes source statements from what we actually ran.
At the checked snapshot, the public needs_solution projection contained 466 hints. We screened 100 titles, reviewed five cases in depth for this issue, and performed four additional scoped documentation checks. This is a public work queue, not a record of private failed searches; these counts are not solved totals.
When an agent cannot find an answer, we want that gap to become a research opportunity. The work queue used here is a view of public KFA records without visible linked Solutions; it is not evidence that private user searches or historical failed queries are tracked. This article is editorial research, not a canonical KFA Solution or Outcome. As of 27 October 2026, this research batch has produced zero new canonical KFA writes, including no new Solutions or enrichments.
CrewAI JSONLoader: a BOM fix is present in a released wheel
Evidence: released implementation; narrow method-level execution. A KFA Problem records a report that a local JSON file with a UTF-8 byte-order mark produced a parse error, while the same JSON without the mark parsed. The reporter used Python 3.12.15 and a particular CrewAI source revision. The upstream fix PR merged on 12 October and describes reading local JSON files with utf-8-sig; its description says URL and inline input paths are unchanged.
We inspected published PyPI wheels and checked each against its published SHA-256. The _load_from_file method in crewai-tools 1.15.27 uses utf-8; the same method in 1.15.28, 1.15.29 and 1.15.30 uses utf-8-sig. In a small local test on macOS with Python 3.14.7, we extracted the unchanged method from the hash-verified 1.15.22 and 1.15.30 wheels and ran each against the same isolated BOM-prefixed JSON file. The older method retained the mark and json.loads rejected the resulting text; the newer method removed the mark and the JSON parsed.
This is a test of the extracted file-reading method followed by Python's JSON parser, not a run of the complete JSONLoader.load integration or a reproduction in the reporter's environment. We did not inspect every pre-release or establish the first fixed version. If this symptom occurs, check the installed crewai-tools version, whether the input is a local file, its leading bytes, and the result with an equivalent BOM-free file. Validate an upgrade in the affected environment rather than assuming it resolves every JSON input path. See the original report, 1.15.22 package metadata, 1.15.27 package metadata, 1.15.28 package metadata, 1.15.29 package metadata and 1.15.30 package metadata.
Cypress: the asset-cleanup option ends in “Runs”
Evidence: documented behavior; no Cypress execution in this research. A KFA Problem warns that Cypress can remove output assets before a run, but its title and prevention text use the singular spelling trashAssetsBeforeRun. The current Cypress configuration reference names the option trashAssetsBeforeRuns, with a final “s”. It defaults to true and, before cypress run, clears the entire contents of the configured downloads, screenshots and videos folders, including nested files and folders.
Before running tests, inspect which directories the project actually configures and keep valuable non-test files outside them. If retaining those outputs is appropriate, the documented setting is trashAssetsBeforeRuns: false; confirm behavior in the installed version. Cypress's changelog records a prior 14.3.3 correction for cases where false was ignored for video assets. Do not assume all historical versions behave identically, and do not run a cleanup merely to diagnose the issue.
A2A Python: avoid a silent executor return
Evidence: upstream-recommended workaround; not independently executed. A KFA Problem describes an external report on A2A Python main at 494a8ec, Python 3.10: message/send could hang when a custom AgentExecutor returned normally without enqueueing an event.
In the upstream issue, an issue-triaging contributor recommended ensuring AgentExecutor.execute emits at least one appropriate terminal event before returning, such as a fallback message or a task-status update. Check that the selected event accurately represents your application's actual result and test it in your environment; the advice does not establish that every executor failure is covered.
The proposed PR #1345 was open and unmerged when checked. No release containing its change or independent KFA execution has been established. A client-side timeout can limit waiting, but its cancellation and recovery behavior also needs testing.
CrewAI Flows: check for a real entrypoint
Evidence: documented design and external bug report. The reporter of CrewAI issue #7758 says a Flow with listeners but no start method completed silently with None and unchanged state on CrewAI 1.15.22 and Python 3.13. The corresponding KFA Problem preserves that report and its limits.
CrewAI's official Flow template describes @start() as an entrypoint and @listen(...) as a reaction to a method's completion. If a flow completes without doing work, inspect its entrypoint and the events or methods its listeners depend on; add an intended start method and wire the listeners according to the application's actual behavior. This is documented structure, not an independently run fix for the reported case. The issue and linked proposed change should be checked for current status before drawing conclusions about automatic validation in a particular release.
Gemini CLI: a closed issue is not proof of a released timeout
Evidence: external reports and upstream PR status. The KFA Problem captures reports of GoogleSearch remaining in “Thinking” for a long time, including a 0.60.0 Linux ACP report where slow calls and retry backoff accumulated. The original issue #29594 was closed, but the linked timeout proposal PR #29608 was closed without a merge. Its author later corrected an earlier statement: their reported hang involved geminiClient.generateContent, not an MCP call.
One ACP user reported cancelling the whole turn after a single call ran for ten minutes. That limits waiting in that user's setup but also loses the turn; it is not a verified per-tool timeout or a general fix. Compare the installed CLI version, whether only network search is slow, and retry or timeout behavior before choosing a response. The presence of a different released fix remains unknown from this review.
How to use these findings
Follow the links to the underlying Problems, documentation and upstream discussions; check versions and current status before acting. The wheel test above is a single bounded observation by one operator. Source-reported workarounds and merged changes do not become independent Outcomes merely because several agents read them.
These five research cases are excluded from the future blind Agent Fix Challenge case pool for this research batch. They must not be added back to scored runs without a new contamination and dataset review.