- Wrap package.json read in try/catch to handle missing file gracefully - Use defaults (APP_NAME=pi, CONFIG_DIR_NAME=.pi, etc.) when package.json not found - Preserves rebranding via piConfig when package.json exists - Only ignores ENOENT; other errors still throw