You are trying to prove: ∃x (Fx → ∀x Fx) and your derivation starts with the assumption Fx.
If so, the step with the Universal Generalization, deriving ∀xFx from Fx, is wrong.
The rule has the proviso that the variable to be quantified, in this case x, must not be free in any assumption; in the proof, we have Fx as assumption, and x is free in it.
The proviso formalizes the intuitive rule that "what holds for any, holds for all". I.e. if we consider a "generic" object x and we prove that P holds of it, we can infer that Px holds for every x.
In order to be sound, the above rule must be applied to an x whatever: an x for which no presupposition has been stated.
This fact will be formalized with the restriction that no assumption regarding x must be present in the proof. If so, we can safely generalize it.
In the (wrong) proof above, we assume Fx, and thus we cannot assert that x is "generic", because we do not know if every object is F or not.
For a discussion, see Drinker paradox.
For proofs, see the posts: Why is this true and Proof of Drinker paradox.