Was trying the RESCRIPt ‘get-ncbi-genomes’ function in a q2 v2025.4 environment on my HPC. For context, just running Entrez queries works fine. My test command: qiime rescript get-ncbi-genomes --p-taxon "Bifidobacterium breve" --verbose --output-dir bifido_genomes_test
And got:
Unexpected error while calling NCBI Datasets API: (410)
Reason: Gone
HTTP response headers: HTTPHeaderDict({'Date': 'Wed, 18 Feb 2026 14:54:10 GMT', 'Server': 'Apache', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload', 'Content-Security-Policy': 'upgrade-insecure-requests', 'Ncbi-Phid': '1D32EE4EE6A5920500002AB74706E8F4.1', 'Content-Type': 'application/json', 'Content-Length': '333', 'X-Datasets-Version': '18.17.1', 'Vary': 'Accept-Encoding', 'X-UA-Compatible': 'IE=Edge', 'X-XSS-Protection': '1; mode=block'})
HTTP response body: {"error": "This version of the API has been retired ( Significant Updates Coming to the NCBI Datasets APIs and Command-Line Tools - NCBI Insights ). Please migrate to the latest version to continue using our services. For more information, visit our API documentation at NCBI Datasets v2 REST API "}
I then found that the 'get-ncbi-protein-data' function does not have the same issue, but instead when I ran: qiime rescript get-ncbi-data-protein --p-query "G1p2" --p-logging-level DEBUG --verbose --output-dir "ncbi_protein_test"
I get a repeating cycle of:
INFO:2026-02-18 10:18:25,731:MainProcess:Downloading 31 sequences
DEBUG:2026-02-18 10:18:33,770:LokyProcess-2:request lock acquired
DEBUG:2026-02-18 10:18:34,171:LokyProcess-2:request lock released
DEBUG:2026-02-18 10:18:34,171:LokyProcess-2:Request failed with code 400. This could be because all of the requested accession ids are invalid, or it could just be a temporary failure. Retrying.
DEBUG:2026-02-18 10:18:36,176:LokyProcess-2:request lock acquired
DEBUG:2026-02-18 10:18:36,575:LokyProcess-2:request lock released
DEBUG:2026-02-18 10:18:36,575:LokyProcess-2:Request failed with code 429. Retrying.
DEBUG:2026-02-18 10:18:40,579:LokyProcess-2:request lock acquired
DEBUG:2026-02-18 10:18:40,982:LokyProcess-2:request lock released
DEBUG:2026-02-18 10:18:40,982:LokyProcess-2:Request failed with code 400. This could be because all of the requested accession ids are invalid, or it could just be a temporary failure. Retrying.
etc, etc. seemingly randomly between code 429 and code 400.
Also tried increasing # of cores, and making the query 'G1p2[prot]', with no change.
But finally, using the main 'get-ncbi-data' function with similar queries does work, so with command: qiime rescript get-ncbi-data --p-query "Bifidobacterium breve[or] OR G1p2[prot]" --output-dir ncbi_data_test --p-logging-level DEBUG --verbose --p-n-jobs 8 it finds ~75k sequences and downloads them as expected.
So the questions are:
- Why are 'get-ncbi-genomes' and 'get-ncbi-data-proteins' failing? Have they been silently deprecated?
- Why are they failing differently? Specifically, how come 'get-ncbi-genomes' seems to be using an outdated API?
If this is just a versioning or weird dependency issue, that's fine of course, and if this was more of an immediate problem I'd probably next try reinstalling the same version of rescript with a minimal q2 environment, and then try installing the latest version. But I didn't see any discussion about this anywhere, so I'd be interested to hear any insights.