Exercise 3 - conv_forward- broadcast error

HI all,
I am getting the following error, can anyone give me a hint why the shape is not right?

ValueError                                Traceback (most recent call last)
<ipython-input-55-182241fd5e53> in <module>
      6                "stride": 2}
      7 
----> 8 Z, cache_conv = conv_forward(A_prev, W, b, hparameters)
      9 print("Z's mean =\n", np.mean(Z))
     10 print("Z[0,2,1] =\n", Z[0, 2, 1])

<ipython-input-54-c0893c722a68> in conv_forward(A_prev, W, b, hparameters)
     96                      weights = W[:,:,:,c]
     97                      biases = b[:,:,:,c]
---> 98                      Z[i, h, w, c] = conv_single_step(a_slice_prev, weights, biases)
     99 
    100 

<ipython-input-24-2e7aa7881504> in conv_single_step(a_slice_prev, W, b)
     24     # YOUR CODE STARTS HERE
     25 
---> 26     s = np.multiply(a_slice_prev, W)
     27     Z = np.sum(s)
     28     Z = Z + np.float(b)

ValueError: operands could not be broadcast together with shapes (3,2,4) (3,3,4)

The first question is whether this happens on the very first iteration or on the last iteration (meaning that you ran off the end of the input space). One approach would be to print the shape of a_slice_prev on every interation to see what is happening.