diff --git a/controller/src/user/api.rs b/controller/src/user/api.rs
index c9b82e1..861db83 100644
--- a/controller/src/user/api.rs
+++ b/controller/src/user/api.rs
@@ -79,18 +79,18 @@ async fn list_users(
     query: Query<PaginationParams<EmptyScanParams, UserPage>>,
 ) -> Result<HttpResponseOk<ResultsPage<User>>, HttpError> {
     let pag_params = query.into_inner();
-    let limit = rqctx.page_limit(&pag_params)?.get() as i64;
+    let limit = rqctx.page_limit(&pag_params)?.get() as usize;
     let pg = rqctx.context().pg_pool.to_owned();
 
-    let last_seen = match &pag_params.page {
-        WhichPage::Next(UserPage { user_id: id }) => Some(id),
-        _ => None,
+    let q = match &pag_params.page {
+        WhichPage::First(..) => None,
+        WhichPage::Next(UserPage { user_id: last_seen }) => Some(last_seen),
     };
 
     let users = sqlx::query!(
         r#"SELECT * FROM users WHERE id > coalesce($1, '00000000-0000-0000-0000-000000000000'::UUID) ORDER BY id LIMIT $2"#,
-        last_seen,
-        limit
+        q,
+        limit as i64
     )
     .fetch_all(&pg)
     .await