MySQL Row size too large (> 8126)
Plan A: (see answer by @hmikael)

Plan B: Change innodb_page_size to 32K.  However, this is a non-trivial task since it applies to all InnoDB tables.  Doing so would change the limit to ~16KB.

(Note: going to page size of 64KB won't get past 16KB limit per row.)

Plan C: Switch to MyISAM.  This is not advised for various reasons.

Plan D: build a "parallel table" or "vertically partition".  That is, split off some of the columns into another table.  Suggest moving rarely-used and/or bulky columns into the new table.  Both tables would have the same PRIMARY KEY (though at most one would say AUTO_INCREMENT).

Plan E: Shrink datatypes where practical.  That is, don't blindly use VARCHAR(255).  (This will also help with performance in a few situations.)  Don't use a 4-byte INT for a true/false flag; use a 1-byte TINYINT.  Etc.

Plan F: Normalize common strings.  (A 3-byte MEDIUMINT UNSIGNED is usually a lot smaller than a string.)

Plan G: Don't splay an array across columns.

(Some "Plans" can be used together.)