NOT SUPPORTED: keyword "id", use "$id" for schema ID

I have an Ionic 5 app. I Updated Angular to v13, and now when I try to create a page using ionic g page, I get the following error

An unhandled exception occurred: NOT SUPPORTED: keyword "id", use "$id" for schema ID
See "/private/var/folders/w2/mtkptv795r57rnl3lnd7ztvw0000gn/T/ng-q1yb0A/angular-errors.log" for further details.

After googling, I installed @angular-eslint/schematics as suggested, but that didn’t help.

How can I resolve this? Should I downgrade to Angular 12?

Here’s my package.json

{
  "name": "thefunkyapp",
  "version": "0.10.1",
  "author": "Some Guy",
  "homepage": "https://www.google.com/",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "13.0.3",
    "@angular/core": "13.0.3",
    "@angular/fire": "^7.2.0",
    "@angular/forms": "13.0.3",
    "@angular/platform-browser": "13.0.3",
    "@angular/platform-browser-dynamic": "13.0.3",
    "@angular/router": "13.0.3",
    "@capacitor/android": "3.3.2",
    "@capacitor/app": "1.0.6",
    "@capacitor/camera": "^1.2.1",
    "@capacitor/core": "3.3.2",
    "@capacitor/filesystem": "^1.0.6",
    "@capacitor/haptics": "1.1.3",
    "@capacitor/keyboard": "1.1.3",
    "@capacitor/status-bar": "1.0.6",
    "@capacitor/storage": "^1.2.3",
    "@ionic-native/camera": "5.32.1",
    "@ionic-native/core": "5.32.1",
    "@ionic-native/file": "5.32.1",
    "@ionic-native/firebase-authentication": "^5.32.1",
    "@ionic-native/firebase-x": "5.32.1",
    "@ionic-native/image-picker": "^5.32.1",
    "@ionic-native/splash-screen": "^5.32.1",
    "@ionic-native/status-bar": "5.32.1",
    "@ionic-native/stripe": "5.32.1",
    "@ionic/angular": "5.6.5",
    "@ionic/pwa-elements": "^3.0.2",
    "@ionic/storage": "3.0.4",
    "@ionic/storage-angular": "^3.0.6",
    "@ungap/global-this": "^0.4.4",
    "angular4-paystack": "^3.0.0",
    "cordova": "^10.0.0",
    "cordova-android": "10.1.1",
    "cordova-ios": "6.2.0",
    "cordova-plugin-androidx": "3.0.0",
    "cordova-plugin-androidx-adapter": "^1.1.3",
    "cordova-plugin-file": "^6.0.2",
    "cordova-plugin-firebase-authentication": "^4.0.2",
    "cordova-plugin-firebasex": "13.0.1",
    "cordova-plugin-image-picker": "^1.1.3",
    "cordova-sqlite-storage": "6.0.0",
    "cordova-support-android-plugin": "1.0.2",
    "cordova-support-google-services": "^1.4.1",
    "core-js": "^3.11.0",
    "firebase": "9.5.0",
    "globalthis": "^1.0.2",
    "npm-check-updates": "^11.5.4",
    "rxfire": "^6.0.0",
    "rxjs": "6.6.7",
    "tslib": "2.2.0",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/architect": "0.1300.4",
    "@angular-devkit/build-angular": "13.0.4",
    "@angular-devkit/core": "13.0.4",
    "@angular-devkit/schematics": "13.0.4",
    "@angular-eslint/builder": "13.0.1",
    "@angular-eslint/eslint-plugin": "13.0.1",
    "@angular-eslint/eslint-plugin-template": "13.0.1",
    "@angular-eslint/schematics": "13.0.1",
    "@angular-eslint/template-parser": "13.0.1",
    "@angular/cli": "13.0.4",
    "@angular/compiler": "13.0.3",
    "@angular/compiler-cli": "13.0.3",
    "@angular/language-service": "13.0.3",
    "@capacitor/cli": "3.3.2",
    "@ionic/angular-toolkit": "3.1.1",
    "@ionic/lab": "3.2.10",
    "@types/jasmine": "3.9.1",
    "@types/jasminewd2": "~2.0.10",
    "@types/node": "~15.0.1",
    "@typescript-eslint/eslint-plugin": "5.3.0",
    "@typescript-eslint/parser": "5.3.0",
    "codelyzer": "^6.0.1",
    "cordova-plugin-device": "^2.0.3",
    "cordova-plugin-ionic-keyboard": "^2.2.0",
    "cordova-plugin-ionic-webview": "^5.0.0",
    "cordova-plugin-splashscreen": "^6.0.0",
    "cordova-plugin-statusbar": "^2.4.3",
    "cordova-plugin-whitelist": "^1.3.4",
    "eslint": "^8.2.0",
    "jasmine-core": "3.9.0",
    "jasmine-spec-reporter": "~7.0.0",
    "karma": "^6.3.2",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~3.0.3",
    "karma-jasmine": "~4.0.1",
    "karma-jasmine-html-reporter": "^1.5.4",
    "npm-force-resolutions": "0.0.10",
    "protractor": "7.0.0",
    "ts-node": "~9.1.1",
    "tslint": "6.1.3",
    "typescript": "4.4.4"
  },
  "description": "An Ionic project",
  "cordova": {
    "plugins": {
      "cordova-plugin-image-picker": {},
      "cordova-sqlite-storage": {},
      "cordova-plugin-camera": {
        "ANDROID_SUPPORT_V4_VERSION": "27.+"
      },
      "cordova-plugin-file": {},
      "cordova-plugin-whitelist": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-device": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-ionic-webview": {
        "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
      },
      "cordova-plugin-ionic-keyboard": {},
      "cordova-plugin-firebasex": {
        "FIREBASE_ANALYTICS_COLLECTION_ENABLED": "true",
        "FIREBASE_PERFORMANCE_COLLECTION_ENABLED": "true",
        "FIREBASE_CRASHLYTICS_COLLECTION_ENABLED": "true",
        "ANDROID_ICON_ACCENT": "#FF00FFFF",
        "ANDROID_PLAY_SERVICES_TAGMANAGER_VERSION": "17.0.0",
        "ANDROID_PLAY_SERVICES_AUTH_VERSION": "17.0.0",
        "ANDROID_FIREBASE_ANALYTICS_VERSION": "17.2.1",
        "ANDROID_FIREBASE_MESSAGING_VERSION": "20.0.0",
        "ANDROID_FIREBASE_CONFIG_VERSION": "19.0.3",
        "ANDROID_FIREBASE_PERF_VERSION": "19.0.1",
        "ANDROID_FIREBASE_AUTH_VERSION": "19.1.0",
        "ANDROID_FIREBASE_INAPPMESSAGING_VERSION": "19.0.3",
        "ANDROID_FIREBASE_FIRESTORE_VERSION": "21.4.0",
        "ANDROID_CRASHLYTICS_VERSION": "2.10.1",
        "ANDROID_CRASHLYTICS_NDK_VERSION": "2.1.1",
        "ANDROID_GSON_VERSION": "2.8.6"
      },
      "cordova-plugin-firebase-authentication": {}
    },
    "platforms": [
      "android",
      "ios"
    ]
  },
  "resolutions": {
    "@babel/preset-env": "^7.8.7"
  }
}

Either that or wait for Ionic 6. In general, I would strongly recommend never doing major framework version upgrades until you have documented guidance saying it’s OK to do so, unless you want to be a canary in the proverbial coal mine.

1 Like

That did it. Thanks.

Downgraded Angular to 12, still happening. Would you mind sharing your working package.json? Maybe I did something wrong in the downgrade. (Still green at this.)

{
  "name": "servicefinder",
  "version": "0.0.1",
  "author": "XXXXXX",
  "homepage": "https://google.com/",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "12.2.14",
    "@angular/core": "12.2.14",
    "@angular/fire": "^7.1.0",
    "@angular/forms": "12.2.14",
    "@angular/platform-browser": "12.2.14",
    "@angular/platform-browser-dynamic": "12.2.14",
    "@angular/router": "12.2.14",
    "@capacitor/android": "3.3.3",
    "@capacitor/app": "1.0.6",
    "@capacitor/camera": "^1.2.1",
    "@capacitor/core": "3.3.2",
    "@capacitor/filesystem": "^1.0.6",
    "@capacitor/haptics": "1.1.3",
    "@capacitor/ios": "3.3.3",
    "@capacitor/keyboard": "1.1.3",
    "@capacitor/push-notifications": "^1.0.7",
    "@capacitor/splash-screen": "^1.2.0",
    "@capacitor/status-bar": "^1.0.6",
    "@capacitor/storage": "^1.2.3",
    "@ionic-native/camera": "5.32.1",
    "@ionic-native/core": "5.32.1",
    "@ionic-native/file": "5.32.1",
    "@ionic-native/firebase-authentication": "^5.32.1",
    "@ionic-native/image-picker": "^5.32.1",
    "@ionic-native/splash-screen": "^5.32.1",
    "@ionic-native/status-bar": "5.32.1",
    "@ionic-native/stripe": "5.32.1",
    "@ionic/angular": "5.6.5",
    "@ionic/pwa-elements": "^3.0.2",
    "@ungap/global-this": "^0.4.4",
    "angular4-paystack": "^3.0.0",
    "angularfire2": "^5.4.2",
    "cordova": "^10.0.0",
    "cordova-ios": "6.2.0",
    "cordova-plugin-androidx": "3.0.0",
    "cordova-plugin-androidx-adapter": "^1.1.3",
    "cordova-plugin-file": "^6.0.2",
    "cordova-plugin-image-picker": "^1.1.3",
    "cordova-sqlite-storage": "6.0.0",
    "cordova-support-android-plugin": "1.0.2",
    "cordova-support-google-services": "^1.4.1",
    "core-js": "^3.11.0",
    "firebase": "9.1.0",
    "formidable": "^3.1.5",
    "globalthis": "^1.0.2",
    "npm-check-updates": "^11.5.4",
    "rxfire": "6.0.0",
    "rxjs": "6.6.7",
    "tslib": "2.2.0",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/architect": "0.1202.13",
    "@angular-devkit/build-angular": "12.2.13",
    "@angular-devkit/core": "12.2.13",
    "@angular-devkit/schematics": "12.2.13",
    "@angular/cli": "12.2.13",
    "@angular/compiler": "12.2.14",
    "@angular/compiler-cli": "12.2.14",
    "@angular/language-service": "12.2.14",
    "@capacitor/cli": "3.3.2",
    "@ionic/angular-toolkit": "3.1.1",
    "@ionic/lab": "3.2.10",
    "@types/jasmine": "3.9.1",
    "@types/jasminewd2": "~2.0.10",
    "@types/node": "~15.0.1",
    "codelyzer": "^6.0.1",
    "cordova-plugin-device": "^2.0.3",
    "cordova-plugin-ionic-keyboard": "^2.2.0",
    "cordova-plugin-ionic-webview": "^5.0.0",
    "cordova-plugin-whitelist": "^1.3.4",
    "jasmine-core": "3.9.0",
    "jasmine-spec-reporter": "~7.0.0",
    "karma": "^6.3.2",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~3.0.3",
    "karma-jasmine": "~4.0.1",
    "karma-jasmine-html-reporter": "^1.5.4",
    "npm-force-resolutions": "0.0.10",
    "protractor": "7.0.0",
    "ts-node": "~9.1.1",
    "tslint": "6.1.3",
    "typescript": "4.3.5"
  },
  "description": "Service Finder",
  "cordova": {
    "plugins": {
      "cordova-plugin-image-picker": {},
      "cordova-sqlite-storage": {},
      "cordova-plugin-camera": {
        "ANDROID_SUPPORT_V4_VERSION": "27.+"
      },
      "cordova-plugin-file": {},
      "cordova-plugin-whitelist": {},
      "cordova-plugin-device": {},
      "cordova-plugin-ionic-webview": {
        "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
      },
      "cordova-plugin-ionic-keyboard": {},
      "cordova-plugin-firebase-authentication": {}
    },
    "platforms": [
      "ios"
    ]
  },
  "resolutions": {
    "@babel/preset-env": "^7.8.7"
  }
}
1 Like