Single.zip completando antes de Success

Quiero combinar la respuesta de 2 singles en un object

override fun buildUseCase(params: Int): Single<EventDetails> { return eventDetailsComponent.getEventDetails(params) .zipWith(bookingComponent.getBookingPage(bookingParams), BiFunction { details, page -> return@BiFunction details.apply { booking_page = page } }) } 

Pero cuando me suscribo no recibo onSuccess porque uno de los singles termina antes que el otro

 fun loadEventDetails(id: Int) { usecase.execute(id) .doOnSubscribe(onSubscribe) .observeOn(SchedulerProvider.mainThread) .subscribeBy(onSuccess = { details -> setValues(details) },onError = onError) .addTo(subscriptions) } 

¿Qué debo hacer para combinar esas llamadas? o para recibir onSuccess al final?