Solenoid actuates unreliable when driven through raspberry pi
If you look carefully at the data sheet for your solenoid, you'll see that it draws 1.1 amps at 5 volts. Now look at the data sheet for the TIP102. Note that you have linked to a TIP122, but that's OK, the two are close enough. At 3 amps and 6 mA of base current, the saturation voltage is about 2 volts. Furthermore, for a base current of 80 mA, the base emitter voltage is given as 2.8 volts. At lower base current, figure a base-emitter voltage of about 2.5 volts. Then, for a 4 volt Arduino output and a 1k base resistor, you'll only get about 1.5 mA, which may or may not be enough to turn on the transistor completely. Even if it does, a 2 volt saturation voltage means that only 3 volts appears on your 5 volt solenoid, so it will not provide as much force as you think.

So your base drive is pretty marginal in terms of turning on your transistor, and even if you do turn it on fully, you won't get full force from the solenoid.

You should switch to a logic-level n-type MOSFET. A good choice might be an IRLZ44N.