You need to make changes ALWAYS in config tool or reoeneing config will not see your changes. They are read from the comment section at the end!
Pause from sd is in SDcard.cpp
void SDCard::pausePrint(bool intern){ if(!sdactive) return; sdmode = 2; // finish running line Printer::setMenuMode(MENU_MODE_PAUSED, true);#if !defined(DISABLE_PRINTMODE_ON_PAUSE) || DISABLE_PRINTMODE_ON_PAUSE==1 Printer::setPrinting(false);#endif #if NEW_COMMUNICATION GCodeSource::removeSource(&sdSource); #endif if(EVENT_SD_PAUSE_START(intern)) { if(intern) { Commands::waitUntilEndOfAllBuffers(); //sdmode = 0; // why ? Printer::MemoryPosition(); Printer::moveToReal(IGNORE_COORDINATE, IGNORE_COORDINATE, IGNORE_COORDINATE, Printer::memoryE - RETRACT_ON_PAUSE, Printer::maxFeedrate[E_AXIS] / 2);#ifdef CNC_SAFE_Z if(Printer::mode == PRINTER_MODE_CNC) { Printer::moveToReal(IGNORE_COORDINATE, IGNORE_COORDINATE, CNC_SAFE_Z - Printer::coordinateOffset[Z_AXIS], IGNORE_COORDINATE, Printer::maxFeedrate[Z_AXIS]); }#endif#if DRIVE_SYSTEM == DELTA Printer::moveToReal(0, 0.9 * EEPROM::deltaMaxRadius(), IGNORE_COORDINATE, IGNORE_COORDINATE, Printer::maxFeedrate[X_AXIS]);#else Printer::moveToReal(Printer::xMin, Printer::yMin + Printer::yLength, IGNORE_COORDINATE, IGNORE_COORDINATE, Printer::maxFeedrate[X_AXIS]);#endif Printer::lastCmdPos[X_AXIS] = Printer::currentPosition[X_AXIS]; Printer::lastCmdPos[Y_AXIS] = Printer::currentPosition[Y_AXIS]; Printer::lastCmdPos[Z_AXIS] = Printer::currentPosition[Z_AXIS]; GCode::executeFString(PSTR(PAUSE_START_COMMANDS)); } } EVENT_SD_PAUSE_END(intern);}
You see pause position is xmin, ymin+ ylength
If that goes outside allowed area you seem to have ylength set too high.