Thank you for the replies. I will check the cpp file as you suggest.
I also tore down the code to a handful of lines - the minimum necessary to reproduce the issue. It is still 6 .ino files, but only a few lines of code in each file. The code is, of course, nonsense because the surrounding context is gone, but it will allow anyone who is interested to reproduce the issue I see in the full set of files.
(I have validated this with another developer, so you should see it too.)
The steps:
1: Open this sketch in the Arduino IDE, compile, it will be fine
2: On the sample_01_Utilities tab delete one of the rows between row 1 and 19
3: Compile again, you should see an error for tab sample_02_BLE that says "'handle_ota_data' was not declared in this scope"
(But of course, you haven't change code to cause the compile error.)
4: Now go to the 1st tab ("sample") and delete a row between 1 and 19 and compile again. This time the issue above does not occur.
There is some relationship between the block comment and number of rows on the first tab and the rows on the 3rd tab. It cannot be reproduced when using "//" to comment out a line on the first tab.
I am sure the community would prefer me to add code snippets, but since it must be reproduced with multiple .ino in a single directory I have uploaded a zip file.
sample.zip (2.43 KB)