You did not change the float specifier, LaTeX did that for you and informed you. The reason is, that you provided just the optional placement argument
!h for a float (figure or table), but the float didn't fit on the current page. It had to be put on top of the next page, corresponding to a placement argument
I recommend to use at least
ht as positioning argument. If you mean "exactly here", then use the argument
H of the
float package or one of the possibilities listed here: Prevent floating of figures or tables.
Often it's satisfying to specify all possible placement options
!htbp, so still letting the figures and tables float.
h means here allowed,
t means top,
b means bottom,
p means on a float-page,
! means try harder! to place it earlier.
For more information about the algorithm for placing floats, see How to influence the position of float environments like figure and table in LaTeX?
If a previous compilation using the
[h] option worked with no error reported, the addition of text before the float may decrease the amount of space available for placing the float as specified, triggering a new error. This may not be obvious to an inexperienced user. (See `h' float specifier changed to `ht', where the OP associated the error with the content of the added text, not with the float.)