Note that the output (return value) of the downsampling blocks is a 2-tuple with 2 tensors. Whereas for the upsampling blocks, the output is a single tensor. Both the downsampling blocks and the upsampling blocks take inputs that are one of the outputs of a downsampling block, right? But it’s a different one in the upsampling case.
So it looks like your code must have gone off the rails earlier. Are you sure you are using the correct number of filters in the previous step? Either that or your upsampling block logic must be incorrect. E.g. maybe hard-coding the number of filters so that you just happen to pass the test in the notebook.