Hi Flx and
to the forum.
The spark you have observed is normal and is caused by a very short but very high inrush current as voltage is quickly being transferred from the battery to charge the capacitors in the controller up from 0V to full battery voltage.
High current controllers
(which tend to have bigger capacitors and a higher residual current draw), tend to use sealed contactors
(heavy duty relays) to eliminate any external sparks.
The contactor is usually controlled by the controller after a built in precharge system allows the capacitors to be charged using a limited current until they are close to battery voltage, allowing the contactor to then be switched on.
A manual option uses simple resistor and a momentary push button switch to precharge the capacitors for a few seconds before the main switch is closed. The following
simple precharge switch circuit works great with lower current hub motors:
But you would need to use higher wattage resistors and a switch capable of carrying a much higher current.
Alan