Was Smullyan really wrong? EDIT: the OP has since edited the question fixing all the issues mentioned here. Yay!
There was a question asked on Puzzling recently, titled Knights, Knaves and Normals "(Smullyan's Error)" where OP claims claimed (this has been since fixed), quote

If you think the challenge [of proving you're a Knight by saying statements] is impossible, you are not alone. In What is the Name of This Book?, the esteemed Raymond M. Smullyan himself asserted (p. 97) that since Normals can both tell the truth and lie, they can say anything a Knight could. There was, however, a subtle error in his logic.

The OP selected an answer with a statement

"If I am not a knight, this is a lie"

, obviously hinting that's that he had in mind as "the error".
Frankly, after going through the book numerous times yesterday just for the sake of it, and reading Smullyan's writings for the last 20 years, I'm completely unconvinced by neither OP's claim nor the accepted answer. My rationale follows: (I'll use the convention of calling well-grounded sentences [i.e. statements] "grounded" and not well-grounded sentences "ungrounded"; most of the things I state here are also directly or indirectly mentioned in the book)

*

*a) ungrounded sentences have no truth values, b) somebody using ungrounded sentences is neither lying nor telling the truth; Smullyan has, numerous times, voiced that - perhaps the most relevant are the problems 70, and, later, entire Chapter 15, with IMO key related problem 255,

*for a statement to be true, it has to be provable in certain system to be true; for a statement to be false, it has to be provable to be false - i.e. a statement's logical value has to be provable somehow,

*for a statement to be provable in a system, there must be a clear and objective way to assert its sense and logical value,

*a logical statement can be either simple (we can assert its value directly) or complex (consisting of other statements bound by operators) - the operators are also a clear way of asserting if the compound expression is true, since they (like shown by e.g. Boole) can be translated to pure arithmetics,

*as such it follows, that for a complex statement to be grounded, it has to consist only of other grounded sentences (statements), and having at least one ungrounded statement in the statement's composition graph automatically makes it and any statement using it ungrounded,

*any statement that is neither provable true nor false in the given system is ungrounded within it, for example $p$ such as $p = "x * 2"$ is ungrounded, since it's unprovable by mathematics,

*there are two interpretations of what "Being a knight/knave/normal" means - one (possibly used by OP) that "knight can only say truth, that is he can only use grounded sentences (statements) which are true, that is he can use those statements which are true - he can't use ungrounded sentences, since they aren't true" (and so on for knave/normal), basically requiring all participants to only use grounded statements , and the second one being that "knight can only say truth, that is he can use those grounded statements which are true - he can still use ungrounded statements, since they make no logical assertion about their truth" (and so on for knave/normal)- however Smullyan shows multiple time throughout the book (see aforementioned problem 70, also problems 256 & 259), that he asserted the second case for the sake of the book,

*AFAIR from both formal logic & linguistic courses: imperatives, interrogatives, exclamations and statements (note: it's about linguistic "statement" here, not logical) with expressed modal doubt aren't grounded per se, only purely declarative statements without expressed modal doubt can be grounded. As an example, "I'm not sure if $x=2$" is ungrounded, $p = "maybe("x = 2")"$ is grounded when interpreted as there exists a provable possibility that x = 2, although x doesn't have to be equal to 2 in all cases, formally making (please excuse the abuse of notation) $maybe(x) \equiv \exists (x)\wedge \not\forall(x)$ (which can be obviously stated as $maybe(x) \equiv \exists (x)\wedge \exists  \neg(x)$) and making the exemplary statement into $\exists x=2 \wedge \not\forall x=2$ (which can be obviously also stated as $\exists x=2 \wedge \exists x \not =2$),

*assuming first interpretation from my pt. 7, Knight couldn't say e.g. "Could you pass the salt?", since that is a logically ungrounded sentences. Yet, throughout the book, there are numerous examples of truth-value-bound people saying logically ungrounded sentences - e.g. Dracula asks questions, King expresses his doubt and asks rhetorical questions when talking to his daughter etc. - making only second interpretation (everyone that's truth-value-bound can still use ungrounded statements) valid,

*self-referencing statements aren't necessarily ungrounded, but recursive sentences (self-referencing statements of the form $p = "f(p)"$) are ungrounded (doesn't constitute a sentence in logical sense), because they can't be evaluated. The exceptional case Smullyan makes is by showing that if we can avoid recursion by making an objective statement that has a real, independent meaning, then we possibly can "ground" the statement.

As such, (assuming knight/knave only island, no normals)

I'm lying now.

is ungrounded. Would be a paradox if it were grounded!

I'm a knave.

is grounded, but, as Smullyan says (and I completely agree) it means that either a) knaves can sometimes tell the truth, and/or b) knights can sometimes lie. No paradox here!
NB.

I was lying yesterday.

is grounded. The fact can be verified.

I will be lying tomorrow.

is grounded if and only if it's about habit (possible to verify), not the actual action (impossible to verify, since it hasn't happened yet).


*the accepted answer would be thus ungrounded regardless is the person saying it is knight, knave or normal, and would be an invalid solution to the puzzle, because literally everyone can make ungrounded sentences (see my pt. 9); there are similar problems for other answers, which try to succeed in the "challenge" by either using ungrounded sentences or changing the setting of the question completely (e.g. by calling on 3rd party that can verify the truthfulness of the person - which is completely against the setting of that specific problem, since you're an outsider there, and also against the original intent of the author, because it would trivialize all and every possible logical problem, since saying "the way to prove you're not a normal is to have a knight to say you're not a normal" is equal to saying "every statement can be proved by truthfully stating with utmost certainty whether it is true of false" - well, duh... except it's actually impossible to do that with any nontrivial thesis - that's why we have to prove things),

*mathematically/logically speaking, IMO formulation of problem 106/107 goes along this lines: (this mirrors the subjects discussed by Smullyan in couple of last chapters of the book; excuse me for any possible errors in transcription)


let $A$ be an infinite set of possible grounded statements verifiable in system $S$ an inhabitant can make, all with definite truth value $1$, $B$ a set of such statements with definite truth value $0$, set $V$ be a set of all possible verifiable grounded statements and $C$ a set of all possible grounded statements, regardless of their verifiability in system $S$. Obviously, $A$ & $B$ are disjoint, $V$ is a strict sum of $A$ and $B$ and $C$ is a strict sum of set $V$ and set $U$, describing all the possible grounded statements that are unverifiable in $S$. Select a random one set out of $\{A,B,C\}$ and call it $X$, not knowing which one you selected. You can now select any number of statements $a_1, a_2, ... a_n$ from $C$ (i.e. you can pick any grounded statement possible) and check the value of $p(a_n) = b(a_n,Z)$. $b$ is a Boolean function here corresponding to the set $X$ you selected, being just a known $b = x$ if you selected $A$, a known $b = \neg x$ if you selected $B$, and some completely unknown $b(x,Z)$ function if $X = C$. $Z$ is an unknown function of unknown parameters. Also, we define $q$ to be verifiable in $S$ if and only if we either know a priori the logic value of $q$, or $p(q)$ is grounded and allows us to clearly say if $q$ is true or not, regardless if $X$ is $A$, $B$ or $C$.

For example, "I'm a knight." is unverifiable (could've been true & said by knight or false and said by knave/normal), while "I'm a knave and 2+2=4" is obviously verifiable, since it's false and the speaker is a normal.
It follows that verifiable statements can be only built on verifiable statements, and any composite statement that has a unverifiable statement as a part is unverifiable itself when it's logical value is dependent on the unverifiable statement - see the discussion about being grounded above, replacing "grounded" with "verifiable". Thus, for $u \in U, v \in V$, we have $"\neg u" \in U, "\neg v" \in V, "1 \vee u" \in V, "0 \vee u" \in U, "0 \wedge u" \in V, "1 \wedge u" \in U$ etc.
The question is:

a) is there any number $n$ of $a_n$ statements from $X$, that can definitely prove that $Z$ is $C$?
b) is there any number $n$ of $a_n$ statements from $X$, that can definitely prove that $Z$ is not $C$?

The obvious solution for a) is to take any $a_n \in U$ - since neither $A$ nor $B$ have no element from $U$, it proves that $X = C$.
As to b), there is no way to check if $X$ strictly ain't $C$ - if $X \not =C$, then because you can only select a statement from $X$, you have to select a verifiable statement. On the other hand, each and every verifiable statement may be present both in $X$ (be it $A$ or $B$) and in $C$.
Of course, there's a difference between e.g. a statement being in set $A$, and being possible to be said by a knight - knights can say everything from $A$ and all true things from $U$ - but since nothing from $U$ can be used to prove anything, the analogy stands - knight would have to use statements only from $A$ to prove anything, knave would have to prove things using only statements from $B$, and normal could've used both statements from from $A$ and $B$ to prove things. To prove you're a normal, it'd thus be enough to use two statements, one from $A$ and one from $B$ - since only a normal can do that, that would be a proof enough. You could also do that by saying e.g. "I can only use false statements to prove things.".


*Also, AFAIK, in general any proof requires that all the statements used in it are grounded - for me it seems obvious (from Godel & Hilbert for example - but it also follows common logic) that we can't prove a statement (thus making it grounded) using any combination of ungrounded sentences, since to prove a statement you can only use statements grounded within the system in which you're proving. Using ungroundability in a proof of groundability seems like trying to reinvent the Russell's paradox to me.


*thus it would follow that OP hasn't found "Smullyan's Error", he just made an error himself by not completely understanding a) the context of the book, and/or b) formal logic behind it.
The question is:
Am I doing it wrong, or is OP wrong on this one?
 A: Short answer: you're both wrong! (Or, perhaps more optimistically, you're both right.) But on balance you're probably less wrong :-)
The thing is, to answer questions like this definitively, you have to be very precise about the rules of the “game” – and there are many sets of rules that could apply.
Just as in mathematics there are many different sets of numbers we could consider, there are also many different systems of logic - and in both cases, this can lead to different answers to the same question. For instance, we might consider the question “How many solutions for $x$ are there to the equation $x^2 = a$?”. For $a$ let's take 4, and consider what happens when we take our set of numbers as $\mathbb{N}$,  $\mathbb{Z}$,  $\mathbb{Q}$,  $\mathbb{R}$ or  $\mathbb{C}$: depending on our choice of set, we may get 1 or 2 solutions. Now take $a=2$ – now we get 0 solutions in some cases and 2 in others. Tahe $a=-1$: again, we may get 0 or 2 solutions, but in different cases to before. But which is the right answer for each value of $a$? Clearly it depends on the context of the question which of these sets of numbers (or indeed which other set) should be used in order to answer the question; one cannot say definitively a priori that 0, 1 or 2 is the “one true answer”.
The logical problem in the Knights problem is that we have a statement that is not only self-referential, but it refers to its own truth value. This is problematic because, in Smullyan's own words (referring to the example of “This sentence is true”):

Before I can know what it means for the sentence to be
  true, I must first understand the meaning of the sentence
  itself. But what is the meaning of the sentence itself; what
  does the sentence say? Merely that the sentence is true, and
  I don't yet know what it means for the sentence to be true.
  In short, I can't understand what it means for the sentence
  to be true (let alone whether it is true or not) until I first
  understand the meaning of the sentence, and I can't understand
  the meaning of the sentence until I first understand
  what it means for the sentence to be true.

Smullyan (in common, it should be said, with many others) resolves this by ruling out this type of self-referential statement (one that depends on its own truth value, in a circular/recursive manner) as not being well-grounded, and he deems that it has no truth value. This is an entirely reasonable position, that one might liken to someone working in $\mathbb{N}$ or $\mathbb{Q}$ who states that $x^2=2$ has no solutions.
But just as it's possible to pick another number system (say $\mathbb{R}$ or $\mathbb{C}$) that does admit solutions, it's possible to construct a system of logic that does cope with (some level of) self-referential statements. This isn't done in standard logic, since for most practical purposes self-referential statements are a curiosity of little practical interest, but in other areas of study – for instance, the theoretical underpinnings of computer science – self-reference and recursion is of crucial importance, so some theory has been developed.
Without wanting to go into too much detail, the typical way to deal with recursion is to look for a fixed point of some function $f$ – that is, a value $x$ for which $f(x) = x$. For the self-referential statements 
we would take $f$ to be “evaluate the statement, with $x$ substituted for the truth value of recursive references to the statement”. On the example “This statement is true”, that gives $f(x)=x$; on “This statement is false” it gives $g(x)=\lnot x$. (Note that for a “normal” statement, with no self-references, we have $h(x)=$<true statement> or $h(x)=$<false statement>, in which case the fixed points are $x=\top$ or $x=\bot$ respectively, as expected.)
Now we come to the problem that the set of fixed points of a function may contain more than one value ($f(\top)=\top$ and $f(\bot)=\bot$ both hold) or none (the set of fixed points of $g$ is empty), and what to do in these situations – especially the former – is again a matter of choosing what rules to play by. In general, given multiple fixed points, one must come up with a way of deciding which, if any, to accept: in computer science, the choice tends to be “take the least fixed point” (under a specific partial order); for your case one may choose to rule out such statements as meaningless, or assert that they are in some way “both true and false”; either may be appropriate according to the circumstances. And then one must clarify the rules as to what statements the characters may may: can a knight (who must always tell the truth) say, “This statement is true”, where the fixed points are $\{\top, \bot\}$, so true is included? Personally I'd say not, but that is a choice for the puzzle setter to make explicit!
Naturally (in order to keep this answer from becoming longer than it already is) I've glossed over a lot of details, but I hope you can start to see how one can begin to construct a theory within which one can systematically give meaning to statements such as “If I am not a knight, this is a lie”, though one has to work in a non-standard logic in order to do so.
As to the question of whether Smullyan made an error: I don't think it's fair to say this. As I've described, whether the answer “If I am not a knight, this is a lie” is acceptable depends on what rules you're playing by, and Smullyan has made it quite clear that he's working in a system in which that is expressly forbidden, so he did not err in saying that the problem posed was impossible.
Note: I believe you've read more into Smullyan's Question 70 than was perhaps intended. You seem to have interpreted this as giving licence to anyone to make ungrounded statements (i.e. utterances in the form of a statement, but having no truth value), regardless of their knighthood, knavehood, etc. In fact, the key here (and what allows the ungrounded statements into the problem in the first place) is not simply that the statements are ungrounded, but the fact that Portia Nth makes no claims about their truthfulness or falsehood. Look carefully at the preceding questions: in each case, either it is noted that “Portia explained...” something about which caskets have true statements, or the text itself gives this information. However, in question 70 this is not the case - Portia Nth simply supplies the caskets to the suitor without any explanation - the suitor's mistake is to believe he should pay any heed to the inscriptions at all, regardless of their groundedness!
Therefore I don't think it's right to suggest that anyone is entitled to make ungrounded statements - rather, I believe the restriction is “when a (knight, knave, etc) says something that is in the form of a statement, that statement must (a) be grounded, and (b) be consistent with whatever rules apply to their particular category”. This allows characters to swear, ask questions, and so forth - because expletives and questions do not have the form of statements - but still rules out them making statements with no truth value.

A: Since OP fixed the question along the lines from my question here , I think I can assume the reasoning proposed in the question was correct. Prof. Smullyan is now officially "no longer in error" chuckle.
