Specific Commutator interpretation: $[c_p^\dagger c_p, c_{k+q}^\dagger c_{k} ]$

I have the problem of computing/understanding a commutator.

The operators I'm working with fullfill the standard bosonic commutation relation:

$[c_q,c_k^\dagger]=\delta_{q,k}$ and $[c_q,c_k]=[c_q^\dagger,c_k^\dagger]=0$

And I want to compute: $[c_p^\dagger c_p, c_{k+q}^\dagger c_{k} ]$.
I basically used the relation $[AB,C]=A [B,C] + [A,C] B$ and found:

$[c_p^\dagger c_p, c_{k+q}^\dagger c_{k} ] = c_p^\dagger[c_p,c_{k+q}^\dagger c_{k}]+[c_p^\dagger,c_{k+q}^\dagger c_{k}] c_p = c_p^\dagger c_k \delta_{k+q,p} + (-\delta_{p,k}) c_{k+q}^\dagger c_p = 0$

Like I understand it, this should hold in any expression.

Therefore when considering a Fock basis, i can define a vacuum $c_k|vac>=0$ for all $k$, where the multiparticle states should be a tensor product of the different $k$ single particle wavefunctions.

I want to look at the one particle scattering process $<k+q| [c_k^\dagger c_k, c_{k+q}^\dagger c_{k} ] |k>$ , where all other states are empty.

This expression should vanish, since the commutator is zero, but calculating it explicitly I found something, which does not look like zero:

$<k+q| [c_k^\dagger c_k, c_{k+q}^\dagger c_{k} ] |k> = <k+q| c_k^\dagger c_k c_{k+q}^\dagger c_{k} |k> - <k+q| c_{k+q}^\dagger c_{k} c_k^\dagger c_k|k>$
$= - <k+q| c_{k+q}^\dagger c_{k} c_k^\dagger c_k|k> \neq0$

So I don't really see where my mistake is.

I agree with your evaluation of the commutator up to this point: $$[c_p^\dagger c_p, c_{k+q}^\dagger c_k] = c_p^\dagger c_k \delta_{p, k+q} - c_{k+q}^\dagger c_p \delta_{p,k}$$ But I don't think this expression vanishes. Consider the case when $q \ne 0$: Then for $p = k + q$, the first term evaluates to $c_{k+q}^\dagger c_k$, whereas the second term vanishes due to the delta function. Or for $p = k$, then the first term vanishes due to the delta function and the second term is $-c_{k+q}^\dagger c_k$. These two expressions don't cancel since they occur in separate cases of $p$. $$[c_p^\dagger c_p, c_{k+q}^\dagger c_k] = \begin{cases} c_{k+q}^\dagger c_k &: p = k+q \\ -c_{k+q}^\dagger c_k &: p = k \\ 0 &: - \\ \end{cases}$$ In the case where $q = 0$, then this expression does indeed vanish for all $p$. However, you can see this as well by directly evaluating $\langle k+q | [c_k^\dagger c_k, c_k^\dagger c_k]|k\rangle$.