anchor.diff:              user.email!, package!.name!);
         }
   
  +      if (package!.isNotVisible) {
  +        throw PackageRejectedException.isWithheld();
  +      }
  +
         if (package!.versionCount >= maxVersionsPerPackage) {
           throw PackageRejectedException.maxVersionCountReached(
               newVersion.package, maxVersionsPerPackage);
  -      }
  -
  -      if (package!.isNotVisible) {
  -        throw PackageRejectedException.isWithheld();
         }
   
         if (package!.deletedVersions != null &&
  
positive.code:     await _bucket.updateMetadata(object, info.metadata.replace(acl: acl));
    }
  
    Future<PackageVersion> _performTarballUpload(
      User user,
      Future<void> Function(String name, String version) tarballUpload,
      UploadRestrictionStatus restriction,
      PackageSummary archive,
    ) async {
      final sw = Stopwatch()..start();
      final entities = await _createUploadEntities(db, user, archive);
      final newVersion = entities.packageVersion;
  
negative.code: 
        sw.reset();
        final version = await _performTarballUpload(
          user: user,
          archive: archive,
          incomingBucket: incomingBucket,
          guid: guid,
        );
        _logger.info('Tarball uploaded in ${sw.elapsed}.');
        _logger.info('Removing temporary object $guid.');
  