diff --git a/src/_zkapauthorizer/foolscap.py b/src/_zkapauthorizer/foolscap.py
index 4e77b5a5075ec4b215d221cbbb8c9e941401cf29..67b1b2f7c0b2d55c76f8a37cf7d4e6b8cf499be6 100644
--- a/src/_zkapauthorizer/foolscap.py
+++ b/src/_zkapauthorizer/foolscap.py
@@ -6,8 +6,7 @@ from foolscap.constraint import (
     ByteStringConstraint,
 )
 from foolscap.api import (
-    ChoiceOf,
-    SetOf,
+    Any,
     DictOf,
     ListOf,
 )
@@ -17,7 +16,6 @@ from foolscap.remoteinterface import (
 )
 
 from allmydata.interfaces import (
-    MAX_BUCKETS,
     StorageIndex,
     RIStorageServer,
     Offset,
@@ -125,7 +123,10 @@ class RIPrivacyPassAuthorizedStorageServer(RemoteInterface):
 
     def share_sizes(
             storage_index_or_slot=StorageIndex,
-            sharenums=ChoiceOf(None, SetOf(int, maxLength=MAX_BUCKETS)),
+            # Notionally, ChoiceOf(None, SetOf(int, maxLength=MAX_BUCKETS)).
+            # However, support for such a construction appears to be
+            # unimplemented in Foolscap.  So, instead...
+            sharenums=Any(),
     ):
         """
         Get the size of the given shares in the given storage index or slot.  If a