@@ -21,7 +21,7 @@ use std::{env, fmt, io};
21
21
use thiserror:: Error ;
22
22
use tokio:: io:: { AsyncReadExt , BufReader } ;
23
23
use tokio_util:: io:: ReaderStream ;
24
- use tracing:: { debug, enabled, trace, Level } ;
24
+ use tracing:: { debug, enabled, trace, warn , Level } ;
25
25
use url:: Url ;
26
26
use uv_client:: { BaseClient , OwnedArchive , RegistryClientBuilder , UvRetryableStrategy } ;
27
27
use uv_configuration:: { KeyringProviderType , TrustedPublishing } ;
@@ -469,10 +469,24 @@ pub async fn check_url(
469
469
. wrap_existing ( client) ;
470
470
471
471
debug ! ( "Checking for {filename} in the registry" ) ;
472
- let response = registry_client
472
+ let response = match registry_client
473
473
. simple ( filename. name ( ) , Some ( index_url) , index_capabilities)
474
474
. await
475
- . map_err ( PublishError :: CheckUrlIndex ) ?;
475
+ {
476
+ Ok ( response) => response,
477
+ Err ( err) => {
478
+ return match err. into_kind ( ) {
479
+ uv_client:: ErrorKind :: PackageNotFound ( _) => {
480
+ // The package doesn't exist, so we can't have uploaded it.
481
+ warn ! (
482
+ "Package not found in the registry; skipping upload check for {filename}"
483
+ ) ;
484
+ Ok ( false )
485
+ }
486
+ kind => Err ( PublishError :: CheckUrlIndex ( kind. into ( ) ) ) ,
487
+ } ;
488
+ }
489
+ } ;
476
490
let [ ( _, simple_metadata) ] = response. as_slice ( ) else {
477
491
unreachable ! ( "We queried a single index, we must get a single response" ) ;
478
492
} ;
0 commit comments