My original walkthrough for uA99 V1.5, which I deleted, was incorrect because I thought I saw IOUs which didn't exist and then that I'd missed a possible combination in step 12b; don't know how I missed that one

. Thanks Afmob and Mike for pointing out those errors. I've now reworked it, using the same steps as much as possible.
I'll rate uA99 V1.5, as reworked, as a Hard 1.25.
Here is my walkthrough. I hope it's now correct.
Prelims
a) R1C12 = {69/78}
b) R1C89 = {18/27/36/45}, no 9
c) R9C12 = {39/48/57}, no 1,2,6
d) R9C89 = {16/25/34}, no 7,8,9
e) 21(3) cage at R1C3 = {489/579/678}, no 1,2,3
f) R234C1 = {127/136/145/235}, no 8,9
g) R234C9 = {128/137/146/236/245}, no 9
h) R678C9 = {389/479/569/578}, no 1,2
i) 9(3) cage in N7 = {126/135/234}, no 7,8,9
j) 19(3) cage in N9 = {289/379/469/478/568}, no 1
k) R5C34567 = {12347/12356}, no 8,9, 1,2,3 locked for R5
1. 45 rule on C5 1 innie R5C5 = 4
1a. 45 rule on C1234 2 innies R5C34 = 4 = {13}, locked for R5
1b. R5C34567 = {12347} (only remaining combination) -> R5C67 = {27}, locked for R5
2. 45 rule on R1234 2 innies R4C28 = 9 = {18/27/36/45}, no 9
3. 45 rule on R6789 2 innies R6C28 = 3 = {12}, locked for R6
4. 45 rule on C1 3 innies R159C1 = 19 = {379/469/478/568}
4a. 3,4 of {379/469/478} must be in R9C1 -> no 7,9 in R9C1, clean-up: no 3,5 in R9C2
5. 45 rule on N1 2 innies R13C3 = 1 outie R4C1 + 2
5a. Max R4C1 = 7 -> max R13C3 = 9, no 9 in R13C3, no 6,7,8 in R3C3
5b. Min R13C3 = 5 -> min R4C1 = 3
6. R234C1 = {127/136/145/235}
6a. 7 of {127} must be in R4C1 -> no 7 in R23C1
7. 18(3) cage in N1 = {369/378/459} (cannot be {189/279/468/567} which clash with R1C12), no 1,2
7a. Killer pair 8,9 in R1C12 and 18(3) cage, locked for N1
8. 45 rule on N7 2 innies R79C3 = 1 outie R6C1 + 8
8a. Min R6C1 = 3 -> min R79C3 = 11, no 1 in R79C3
9. 45 rule on N9 1 outie R6C9 = 2 innies R79C7 + 1
9a. Min R79C7 = 3 -> min R6C9 = 4
9b. Max R6C9 = 9 -> max R79C7 = 8, no 8,9 in R79C7
10. 19(4) cage at R4C2 cannot be {1279} because no 7 in R5C12 -> no 1,2 in R4C2
10a. 21(4) cage at R4C8 cannot contain both 1 and 2 -> no 1,2 in R4C8
10b. R4C28 (step 2) = {36/45}, no 7,8
11. 19(4) cage at R4C2 = {1459/1468/2359/2368/2458} (cannot be {1369}which clashes with R5C3)
11a. 3,4 must be in R4C2 -> no 5,6 in R4C2, clean-up: no 3,4 in R4C8 (step 2)
11b. 21(4) cage at R4C8 = {1569/2568}, 5,6 locked for N6
12. 45 rule on R1 2 outies R2C46 = 1 innie R1C5 + 14
12a. Max R2C46 = 17 -> max R1C5 = 3
12b. R2C46 = 15,16,17 = {
69/78/79/89}
13. 21(3) cage at R1C3 = {489/579
/678}
13a. 4 of {489} must be in R1C3 -> no 4 in R1C4
13b.
6 of {678} must be in R2C4 (R1C34 cannot be {67/68} which clash with R1C12), no 6 in R1C34
14. 45 rule on N1 4 innies R1C3 + R23C1 + R3C3 = 12 = {1245} (cannot be {1236} because R1C3 only contains 4,5,7), locked for N1
[This is my original step 20 which I’ve moved here to use some of my existing steps.]
14a. 21(3) cage at R1C3 = {489/579} (cannot be {678} because R1C3 only contains 4,5), no 6, 9 locked in R12C4, locked for C4 and N2
14b. R1C3 = {45} -> no 5 in R1C4
14c. R1C89 = {18/27/36} (cannot be {45} which clashes with R1C34 in 21(3) cage), no 4,5
15. Hidden killer pair 4,5 in R1C34 and R1C67 for R1 -> R1C67 must contain one of 4,5
15a. 14(3) cage at R1C6 = {158/248/257/347
/356} (
cannot be {149} because R2C6 only contains 6,7,8, cannot be {167/239} which don’t contain 4 or 5), no
9
15b. R2C6 = {
678} -> no 6,7,8 in R1C67
16. 45 rule on N3 2 innies R13C7 = 1 outie R4C9 + 9
16a. Max R13C7 = 14 -> no 7,8 in R4C9
16b. Min R4C9 = 1 -> min R13C7 = 10, no 1,2,3,4,5 in R3C7 (R13C7 cannot be [55])
17. 45 rule on C12 2 outies R28C3 = 9 = {36}/[72/81], no 9
, no 4,5 in R8C3
18. 9(3) cage in N7 = {126/135/234}
18a. 6 of {126} must be in R78C2 (R78C2 cannot be {12} which clashes with R6C2), no 6 in R8C3, clean-up: no 3 in R2C3 (step
17)
19. 45 rule on C89 2 outies R28C7 = 13 = {49/58/67}, no 1,2,3
20. 18(3) cage in N1 (step 7) = {369/378}, 3 locked in R23C2, locked for C2 -> R4C2 = 4, R4C8 = 5 (step 2), clean-up: no 8 in R9C1, no 2 in R9C9
20a. 6 of {369} must be in R2C3 -> no 6 in R23C2
20b. 6 in N6 locked in R5C89, locked for R5
20c. 19(4) cage at R4C2 (step 11) = {1459/2458}, 5 locked for N4
21. 9(3) cage in N7 = {126/135}, 1 locked for N7
22. 1 in C1 locked in R23C1, locked for N1
22a. R234C1 = {127} (only remaining combination, cannot be {136} because 3,6 only in R4C1, cannot be {145} because R4C1 only contains 3,6,7) -> R4C1 = 7, R23C1 = {12}, locked for C1 and N1, clean-up: no 8 in R1C2
22b. Naked pair {45} in R13C3, locked for C3
22c. 4 in R2 locked in R2C789, locked for N3
23. R678C1 = {349/358}, no 6, 3 locked for C1, clean-up: no 9 in R9C2
23a. Killer pair 4,5 in R678C1 and R9C1, locked for C1
23b. R5C2 = 5 (hidden single in R5)
24. R1C1 = 6 (hidden single in C1), R1C2 = 9, clean-up: no 3 in R1C89, no 3 in R8C3 (step
17)
24a. R2C4 = 9 (hidden single in C4), clean-up: no 4 in R8C7 (step
19)
25. Naked triple {126} in 9(3) cage, locked for N7
26. R79C3 = R6C1 + 8 (step 8)
26a. R6C1 = {389} -> R79C3 = 11,16,17 = {38/79/89}
26b. Killer pair 7,8 in R2C3 and R79C3, locked for C3
26c. Killer pair 7,8 in R79C3 and R9C2, locked for N7
27. 45 rule on C9 3 innies R159C9 = 14 = {149/158/167/239/248} (cannot be {257/347} because R5C9 only contains 6,8,9, cannot be {356} because R1C9 only contains 1,2,7,8)
27a. R5C9 = {689} -> no 8 in R1C9, no 6 in R9C9, clean-up: no 1 in R19C8
28. R234C9 = {137/146/236/245} (cannot be {128} which clashes with R159C9), no 8
28a. 4 of {245} must be in R2C9 -> no 5 in R2C9
29. 16(3) cage in N3 = {169/259/349/358/367/457} (cannot be {178/268} which clash with R1C89)
29a. 9 of {169/259} must be in R3C8 -> no 1,2 in R3C8
29b. 5 of {358} must be in R2C7 -> no 8 in R2C7, clean-up: no 5 in R8C7 (step 19)
[Re-worked from here.]
30. 19(3) cage in N9 = {289/379/469/478}
30a. R678C9 = {389/479/569/578}
30b. 4 of {479} must be in R78C9 (R78C9 cannot be {79} which clashes with 19(3) cage) -> no 4 in R6C9
31. R6C7 = 4 (hidden single in R6), clean-up: no 9 in R8C7 (step 19)
31a. 19(3) cage in N9 = {289/379/469/478}
31b. 6 of {469} must be in R8C7 -> no 6 in R78C8
32. 9 in C7 locked in R34C7, locked for 19(4) cage -> no 9 in R4C6
32a. 19(4) cage at R3C6 = {1279/1369/2359} (cannot be {1459} because 4,5 only in R3C6), no 4,8
32b. 8 in R4 locked in R4C45, locked for N5
32c. 8 in N3 locked in R123C8, locked for C8
33. R8C7 = 8 (hidden single in C7), R2C7 = 5 (step 19)
33a. R78C8 (step 31a) = {29/47}, no 3
33b. R23C8 (step 29) = [29/38/47/83], no 6, no 1,7 in R2C8
34. R678C9 = {389/479/569/578}
34a. 7 of {479} must be in R78C9 (R78C9 cannot be {49} which clashes with R78C8)
34b. 8 of {578} must be in R6C9
34c. -> no 7 in R6C9
35. R5C7 = 7 (hidden single in N6), R5C6 = 2
36. R6C9 = R79C7 + 1 (step 9)
36a. R6C9 = {89} -> R79C7 = 7,8 = {16/26}, no 3, 6 locked for C7 and N9 -> R3C7 = 9, clean-up: no 2 in R2C8 (step 33b), no 1 in R9C9
37. 1 in N9 locked in R79C7, locked for C7
37a. R79C7 = {16} (hidden pair in N9) -> R6C9 = 8 (step 9), clean-up: no 5 in R78C1 (step 23)
37b. R78C9 (step 34) = {39/57}, no 4
38. R5C1 = 8 (hidden single in C1), R6C2 = 2 (step 20c), R6C8 = 1
39. R9C1 = 5 (hidden single in C1), R9C2 = 7, clean-up: no 2 in R9C8
39a. R8C3 = 2 (hidden single in C3), R2C3 = 7 (step 17), clean-up: no 9 in R7C8 (step 33a)
40. Naked pair {34} in R9C89, locked for R9 and N9, clean-up: no 7 in R78C8 (step 33a), no 9 in R78C9 (step 37b)
40a. R78C8 = [29], R5C89 = [69], clean-up: no 7 in R1C9
40b. Naked pair {57} in R78C9, locked for C9
41. Naked pair {23} in R4C79, locked for R4
41a. 19(4) cage at R3C6 (step 32a) = {1279/1369} (cannot be {2359} because R4C6 only contains 1,6), no 5
41b. 1 locked in R34C6, locked for C6
41c. R4C7 = {23} -> no 3 in R3C6
42. 15(3) cage at R8C6 = {159/168} (cannot be {348/357} because R9C7 only contains 1,6, cannot be {456} because 4,5 only in R8C6)
, no 3,4,7
42a. R8C6 = {56} -> no 6 in R9C67 -> R9C7 = 1, R7C7 = 6, R78C2 = [16], R8C6 = 5, R9C6 = 9 (step 42), R78C9 = [57], R9C3 = 8
43. R9C3 = 8 -> R89C4 = 6 = [42], R9C5 = 6
44. R1C3 = 5 (hidden single in R1), R1C4 = 7 (step 13), R3C3 = 4, R1C8 = 8, R1C9 = 1, clean-up: no 3 in R23C8 (step 33b)
44a. R23C8 = [47], R9C89 = [34]
45. Naked pair {16} in R34C6, locked for C6 -> R2C6 = 8, R23C2 = [38]
45a. R2C6 = 8 -> R1C67 = 6 = [42], R1C5 = 3, R8C5 = 1, R2C5 = 2, R3C5 = 5, R4C5 = 9 (cage sum)
and the rest is naked singles