diff --git a/src/clients/admin/admin.ts b/src/clients/admin/admin.ts index 1bddabd..4a34e15 100644 --- a/src/clients/admin/admin.ts +++ b/src/clients/admin/admin.ts @@ -444,8 +444,9 @@ export class Admin extends Base { } #createTopics (options: CreateTopicsOptions, callback: CallbackWithPromise): void { - const numPartitions = options.partitions ?? 1 - const replicationFactor = options.replicas ?? 1 + // -1 is required if manual assignments are used. If no manual assignments are used, -1 will default to broker settings. + const numPartitions = options.partitions ?? -1 + const replicationFactor = options.replicas ?? -1 const assignments: CreateTopicsRequestTopicAssignment[] = [] const configs = options.configs ?? [] diff --git a/test/clients/admin/admin.test.ts b/test/clients/admin/admin.test.ts index 6528779..87343c2 100644 --- a/test/clients/admin/admin.test.ts +++ b/test/clients/admin/admin.test.ts @@ -439,8 +439,6 @@ test('createTopics using assignments', async t => { // Create a topic with a single partition - leader will be automatically assigned const created = await admin.createTopics({ topics: [topicName], - partitions: -1, - replicas: -1, assignments: brokerIds.map((brokerId, i) => ({ partition: i, brokers: [brokerId] })) })