···441441 return LoginResult.failed('PDS endpoint not found');
442442 }
443443444444+ // Fetch session info to get DID and handle if not already set
445445+ // This is needed for registration flow where handle/DID aren't known upfront
446446+ if (_did == null || _handle == null) {
447447+ try {
448448+ final sessionResponse = await _atProto!.server.getSession();
449449+ _did = sessionResponse.data.did;
450450+ _handle = sessionResponse.data.handle;
451451+ _logger.d('Fetched session info - DID: $_did, Handle: $_handle');
452452+ } catch (e) {
453453+ _logger.e('Failed to fetch session info', error: e);
454454+ return LoginResult.failed('Failed to get session info: $e');
455455+ }
456456+ }
457457+444458 // Save session
445459 await _saveSession();
446460