@chungwei
I recently stumbled into this error message and was quite surprised.
Then I realized I'd made a new table with only the default "Column 1" and no rows.
I would prefer the table be saved as an empty table, but in my case the solution was as simple as naming the only column when I created the table.
The original report was apparently doing something other than the NewTable() function, so naming the column might have been harder.
sentinelDt = New Table( "sentinel", "private", New Column( "a") ); // needs a col name to save it with no rows!
sentinelDt << save( root || sentinelName );
Craige