Temporary table is full The table '/mnt/disks/data/tmp/#sql58de_a0f6_7' is full
The query is quite complex/big. Lots of joins in joins and unions, sorting, grouping, ...
1 out of 10 the result is returned. Otherwise it results in the above error.
CPU and memory increase but never max out while running the query.
There is plenty of disk space (100Gb free).
I have fiddled with:
innodb_log_file_size
innodb_log_buffer_size
innodb_temp_data_file_path
innodb_data_file_path
innodb_data_home_dir

max_heap_table_size
tmp_table_size

table_open_cache
table_definition_cache
thread_cache_size
sort_buffer_size

tmpdir and slave_load_tmpdir are set to /mnt/disks/data/tmp which has plenty of space and nevers runs out of space when running the query. innodb_tmpdir is set to NULL which means it falls back to tmpdir?
Some settings I've changed because of things I read about this issue. Others after mysqltuner advice.
But I could not let the query succeed consistently.
So: there is something running out of space. But what? And where?

Version: Ver 8.0.23 for Linux on x86_64 (MySQL Community Server - GPL)
Storage engine: InnoDB
When an InnoDB table is full, it has nothing to do with the OS Diskspace.
InnoDB views a table as being full in terms of the storage engine itself.
There are two circumstances under which this can happen
innodb_file_per_table off
I once had a client that had 2TB ibdata1/ibdata2. The client was unable to write any more transactions although ibdata file had 106GB of fragmentation. The solution was to give it more space.
innodb_file_per_table on
When InnoDB tables are stored .ibd files, the table can become full when the undo log gets full
See my old posts going back 10 years on this topic

Feb 22, 2018 : The table is full - MariaDB
Jun 16, 2014 : MySQL Index creation failing on table is full
Mar 31, 2014 : mysql directory grow to 246G after one query, which failed due to table is full
May 31, 2013 : `ERROR 1114 (HY000) the table ... is full` with innodb_file_per_table set to autoextend
Nov 26, 2011 : ERROR 1114 (HY000) at line 6308 in file &amp; The table user_analysis is full

IMHO this should fully explain a full InnoDB table