TensorContract applied twice

I have a very simple question about TensorContract command: I'm declaring

\$Assumptions = {T \[Element] Arrays[{4, 4, 4, 4}], a \[Element] Arrays[{4, 4}], b \[Element] Arrays[{4, 4}]};

so T is a rank 4 tensor a and b are two rank two tensors. Now I want to do the tensor product and contract them this way

fc=TensorContract[TensorProduct[T, a, b], {{1, 5}, {2, 6}, {3, 7}, {4, 8}}]];

this mean tha all indices are contracted, that is TensorRank[fc]=0. Now I want to do the same operation firstly contractin T with a and then to contract the result, that is a rank 2 tensor with b:

c = TensorContract[TensorProduct[T, a], {{1, 5}, {2, 6}}]];

infact TensorRank[c]=2, now as a rank 2 tensor I would like to contract this wit b

d = TensorContract[TensorProduct[c, b], {{1, 3}, {2, 4}}];

this gives a rank 0 tensor, infact TensorRank[d]=0. Now if I type

d // TensorReduce

I get the error message:

"Contractions {{1,5},{2,6},{3,5},{4,8}} contain repeated levels.

What is happening? How can I do this operation correctly?