I've been using a base address of zero with fixup data to force ASLR. Sometimes FASM would produce a EXE that would not run, "The parameter is incorrect." - which I didn't see because FDBG was just pretending the file didn't exist. So, then I reverted to a previous version of my code and the error went away.
It came back again and I caught it this time.
FORMAT PE64 GUI 6.0 AT 0 ; force ASLR
SECTION '' CODE EXECUTABLE READABLE
entry $
retn
Examples dq \
.A,.A..,\
.B,.B..,\
.C,.C..
.A db 1
.A.. = $ - .A
.B db 2
.B.. = $ - .B
.C db 3
.C.. = $ - .C
; Address Space Layout Randomization
SECTION '' DATA READABLE DISCARDABLE FIXUPS
It's frustrating how a very small change makes the problem disappear:
Examples dq \
.A,.A..,\
.B,.B..;,\ ; just remove the last table entry and it works
; .C,.C..
...odd, but hopefully that helps narrow it down. The larger project had many more relocations - it was just this table - which puzzled me further. I'll look for it when I have more time - just happy to know what it is at this point. Easy work around is just to use a different base address.