Where is the error in this proof of the Hodge theorem? Let $(M,g)$ be a closed smooth Riemannian manifold. The following is the decomposition part of the Hodge theorem:

Theorem
The canonical map $\mathscr{H}^k(M)\to H^k(M)$ from harmonic $k$ forms into the De Rahm cohomology is an isomorphism.

Let us consider $\Omega^*(M)\otimes \mathbb C$ with the following scalar product:
$$\langle\omega,\eta\rangle := \int_M \omega \wedge *\eta$$
This is a pre-Hilbert space and from the definition $d^*$ is the adjoint of $d$. Since $\Delta = d^\mathstrut d^* + d^*d^\mathstrut=(d^\mathstrut+d^*)^2$, if $(d^\mathstrut + d^*)\omega \neq 0$ then from $$\langle \omega, \Delta \omega \rangle =\langle (d^\mathstrut + d^*) \omega, (d^\mathstrut + d^*)\omega\rangle  =\|(d^\mathstrut + d^*)\omega\|^2$$
you get that $\Delta \omega$ also is not zero and $\ker(\Delta)=\ker(d^\mathstrut+d^*)$. Now suppose $\omega \notin \ker(d)$:
$$\langle d\omega , (d^\mathstrut + d^*) \omega \rangle = \langle d \omega, d\omega \rangle + \langle d^2 \omega, \omega \rangle = \|d\omega\|^2$$
And we get $\omega \not\in \ker(\Delta)$. Doing the same with $\ker(d^*)$ you get $\ker(\Delta)\subset\ker(d)\cap\ker(d^*)$. This means that the inclusion defined above is well defined.
On the other hand if $\omega \in \ker(d)\cap\ker(d^*)$ cleary $(d^\mathstrut + d^*)\omega=0$. So a form is harmonic if and only if it lies in the joint kernel of $d$ and $d^*$.
Write $\ker(d)=\text{im}(d)\oplus\text{im}(d)^\perp$, where $\text{im}(d)^\perp$ is the subspace of $\ker(d)$ (not $\Omega^*$) that is orthogonal to $\text{im}(d)$.
If $\omega$ is harmonic then $\omega \in \ker(d^*)$ and $\langle d \eta, \omega \rangle=\langle \eta, d^*\omega \rangle=0$ and $\omega$ lies in $\text{im}(d)^\perp$. On the other hand if $\omega \in \text{im}(d)^\perp$ then $0=\langle d^\mathstrut d^*\omega, \omega \rangle = \langle d^* \omega, d^* \omega\rangle$ and $\omega$ lies in $\ker(d^*)$.
This implies that the space of harmonic forms is equal to $\text{im}(d)^\perp$, which implies the theorem above.

My problem is that this is a very elementary proof, it uses only that $\langle,\rangle$ is positive definite, completeness of the vector space is not needed. Yet in most discussions one sees constant reference to the fact that Hodge theorem is non-trivial and uses involved results about the theory of elliptic operators, but this was not used in this derivation.
Is there an error in the derivation or a missed subtlety? Or does this part of the Hodge theorem (which to me seems the more interesting part) indeed just follow from elementary considerations?
 A: As Daniel Fischer pointed out in the comments, the gap in your proof is the claim that $\operatorname{ker}(d) = \operatorname{im}(d) \oplus \operatorname{im}(d)^\perp$.  But it should be noted that simply working in a complete space is not enough to justify this claim; it's necessary to prove that $\operatorname{im}(d)$ is closed. All of the operators $\Delta$, $d$, and $d^*$ are unbounded with respect to the $L^2$ norm, and it's perfectly possible for such an operator to have non-closed image.
The real work in proving the Hodge theorem is proving that $\Delta$ is a Fredholm operator on the $L^2$ completion of $\Omega^*(M)$ (i.e., it has finite-dimensional kernel and closed image). From this it follows rather easily that both $d$ and $d^*$ have closed image, from which you can conclude that $\operatorname{ker}(d) = \operatorname{im}(d) \oplus \operatorname{im}(d)^\perp$. Then you can use elliptic regularity (i.e., if $\Delta \omega$ is smooth, then so is $\omega$) to transfer these results back to $\Omega^*(M)$.
