You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Config Schema JSON: schema is invalid - required should not be a boolean property on individual fields. In JSON Schema, required must be an array at the object level listing required property names. Remove "required": true/false from individual properties and use "required": ["property1", "property2"] at the object level instead.
Config Schema JSON: does not contain a name schema property
Runtime: skipped due to prior test failures
🟢 The following checks passed:
Installation: successfully installed
Package JSON: homepage exists
Package JSON: bugs.url exists and seems a valid URL
Package JSON: keywords exist and contain 'homebridge-plugin'
Package JSON: 'preinstall' in scripts is not present
Package JSON: 'install' in scripts is not present
Package JSON: 'postinstall' in scripts is not present
Package JSON: engines.node property is compatible with Node 20
Package JSON: engines.node property is compatible with Node 22
Package JSON: engines.homebridge property is compatible with Homebridge 1.11.0
Package JSON: initializer function found
NPM Package: has not been deprecated
GitHub Repo: version in package.json (v1.0.0) matches NPM version (v1.0.0)
Config Schema JSON: exists and is valid JSON
Config Schema JSON: contains a valid pluginAlias
Config Schema JSON: the pluginType is set to 'platform'
Dependencies: homebridge was not installed as a dependency
Dependencies: hap-nodejs was not installed as a dependency
GitHub Repo: repository is public
GitHub Repo: repository is not archived
GitHub Repo: issues are enabled
GitHub Repo: contains releases
⚠️ Please action these failures and then comment /check to run the checks again. Let us know if you need any help.
If updating your package.json and config.schema.json files, don't forget to publish a new version to NPM.
These checks were run against v1.0.0 of the plugin.
GitHub Repo: could not check package.json version as The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
Runtime: skipped due to prior test failures
GitHub Repo: should have issues enabled
GitHub Repo: should contain releases
🟢 The following checks passed:
Installation: successfully installed
Package JSON: homepage exists
Package JSON: bugs.url exists and seems a valid URL
Package JSON: keywords exist and contain 'homebridge-plugin'
Package JSON: 'preinstall' in scripts is not present
Package JSON: 'install' in scripts is not present
Package JSON: 'postinstall' in scripts is not present
Package JSON: engines.node property is compatible with Node 20
Package JSON: engines.node property is compatible with Node 22
Package JSON: engines.homebridge property is compatible with Homebridge 1.11.0
Package JSON: initializer function found
NPM Package: has not been deprecated
Config Schema JSON: exists and is valid JSON
Config Schema JSON: contains valid JSON Schema
Config Schema JSON: schema has valid type property
Config Schema JSON: schema has valid properties for object type
Config Schema JSON: contains a valid pluginAlias
Config Schema JSON: the pluginType is set to 'platform'
Config Schema JSON: contains a name schema property
Dependencies: homebridge was not installed as a dependency
Dependencies: hap-nodejs was not installed as a dependency
GitHub Repo: repository is public
GitHub Repo: repository is not archived
⚠️ Please action these failures and then comment /check to run the checks again. Let us know if you need any help.
If updating your package.json and config.schema.json files, don't forget to publish a new version to NPM.
These checks were run against v1.0.2 of the plugin.
expected startup but failed - [9/15/2025, 11:50:57 PM] TypeError: Cannot read properties of undefined (reading 'denylist')
at NextDNSPlatform.discoverDevices (file:///workspace/test-area/node_modules/homebridge-nextdns/src/platform.ts:99:45)
at processTicksAndRejections (node:internal/process/task_queues:105:5)
This needs to be fixed so that the plugin does not send Homebridge into a crash-restart loop. The plugin could:
- Handle missing required configuration gracefully with proper error messages
- Provide sensible defaults for missing values
- Validate configuration during startup and log helpful warnings
⚠️ Plugin crashes when started with the following configuration:
expected startup but failed - [9/15/2025, 11:51:03 PM] TypeError: Cannot read properties of undefined (reading 'denylist')
at NextDNSPlatform.discoverDevices (file:///workspace/test-area/node_modules/homebridge-nextdns/src/platform.ts:99:45)
at processTicksAndRejections (node:internal/process/task_queues:105:5)
This needs to be fixed so that the plugin does not send Homebridge into a crash-restart loop. The plugin could:
- Handle missing required configuration gracefully with proper error messages
- Provide sensible defaults for missing values
- Validate configuration during startup and log helpful warnings
⚠️ Plugin crashes when started with the following configuration:
expected startup but failed - [9/15/2025, 11:51:09 PM] FetchError: request to https://api.nextdns.io/profiles/test-value failed, reason: ENOTFOUND: Mock network failure - https://api.nextdns.io/profiles/test-value
at Object._errorCallback (file:///workspace/test-area/node_modules/node-fetch/src/index.js:108:11)
at Timeout._onTimeout (/workspace/test-area/homebridge-test-1757980268620/http-monitor.js:72:22)
at listOnTimeout (node:internal/timers:588:17)
at processTimers (node:internal/timers:523:7)
This needs to be fixed so that the plugin does not send Homebridge into a crash-restart loop. The plugin could:
- Handle missing required configuration gracefully with proper error messages
- Provide sensible defaults for missing values
- Validate configuration during startup and log helpful warnings
🟢 The following checks passed:
Installation: successfully installed
Package JSON: homepage exists
Package JSON: bugs.url exists and seems a valid URL
Package JSON: keywords exist and contain 'homebridge-plugin'
Package JSON: 'preinstall' in scripts is not present
Package JSON: 'install' in scripts is not present
Package JSON: 'postinstall' in scripts is not present
Package JSON: engines.node property is compatible with Node 20
Package JSON: engines.node property is compatible with Node 22
Package JSON: engines.homebridge property is compatible with Homebridge 1.11.0
Package JSON: initializer function found
NPM Package: has not been deprecated
GitHub Repo: version in package.json (v1.0.2) matches NPM version (v1.0.2)
Config Schema JSON: exists and is valid JSON
Config Schema JSON: contains valid JSON Schema
Config Schema JSON: schema has valid type property
Config Schema JSON: schema has valid properties for object type
Config Schema JSON: contains a valid pluginAlias
Config Schema JSON: the pluginType is set to 'platform'
Config Schema JSON: contains a name schema property
Dependencies: homebridge was not installed as a dependency
Dependencies: hap-nodejs was not installed as a dependency
Runtime: homebridge installed successfully
Runtime: no config - homebridge should start without plugin configuration and plugin should not load
Runtime: platform only - plugin should start with just platform property
GitHub Repo: repository is public
GitHub Repo: repository is not archived
GitHub Repo: issues are enabled
GitHub Repo: contains releases
⚠️ Please action these failures and then comment /check to run the checks again. Let us know if you need any help.
If updating your package.json and config.schema.json files, don't forget to publish a new version to NPM.
These checks were run against v1.0.2 of the plugin.
@bwp91 I've resolved the 2 issues I ran into with the validation script.
This code is checking the output for error strings. Even though I was catching the error, I was printing it out verbatim in order to help in debugging config issues. This still caused failure. Once I logged a more generic message instead, the test was able to continue. (It might be helpful to add a note to the failure output to ensure you don't log the failure message verbatim.)
The second error here was because the node-fetch code here was attempting to call the abort function which didn't seem to exist on the mocked request object. I didn't really dig into the code path causing this because I simply removed the dependency on node-fetch since I didn't realize that node has had native fetch support since v18.
Interested in getting a @homebridge-plugins/ scope for your plugin? See our Homebridge Scoped Plugins program.
If for any reason in the future you can no longer maintain your plugin, please consider transferring it to our Homebridge Plugins organization.
Don't forget to join the official Homebridge Discord server, where plugin developers can get tips and advice from other developers and the Homebridge project team in the #plugin-development channel!
As a verified plugin, you can request a channel in the Discord server to discuss your plugin with users and other developers. Just ask in the #plugin-development channel.
Thank you for your contribution to the Homebridge community.
Activity
github-actions commentedon Sep 15, 2025
🔴 The following checks failed:
requiredshould not be a boolean property on individual fields. In JSON Schema,requiredmust be an array at the object level listing required property names. Remove"required": true/falsefrom individual properties and use"required": ["property1", "property2"]at the object level instead.nameschema property🟢 The following checks passed:
homepageexistsbugs.urlexists and seems a valid URLkeywordsexist and contain'homebridge-plugin''preinstall'inscriptsis not present'install'inscriptsis not present'postinstall'inscriptsis not presentengines.nodeproperty is compatible with Node 20engines.nodeproperty is compatible with Node 22engines.homebridgeproperty is compatible with Homebridge 1.11.0pluginAliaspluginTypeis set to'platform'homebridgewas not installed as a dependencyhap-nodejswas not installed as a dependency/checkto run the checks again. Let us know if you need any help.If updating your
package.jsonandconfig.schema.jsonfiles, don't forget to publish a new version to NPM.These checks were run against v1.0.0 of the plugin.
Workflow →
jtokoph commentedon Sep 15, 2025
/check
github-actions commentedon Sep 15, 2025
🔴 The following checks failed:
🟢 The following checks passed:
homepageexistsbugs.urlexists and seems a valid URLkeywordsexist and contain'homebridge-plugin''preinstall'inscriptsis not present'install'inscriptsis not present'postinstall'inscriptsis not presentengines.nodeproperty is compatible with Node 20engines.nodeproperty is compatible with Node 22engines.homebridgeproperty is compatible with Homebridge 1.11.0typepropertypropertiesfor object typepluginAliaspluginTypeis set to'platform'nameschema propertyhomebridgewas not installed as a dependencyhap-nodejswas not installed as a dependency/checkto run the checks again. Let us know if you need any help.If updating your
package.jsonandconfig.schema.jsonfiles, don't forget to publish a new version to NPM.These checks were run against v1.0.2 of the plugin.
Workflow →
jtokoph commentedon Sep 15, 2025
/check
github-actions commentedon Sep 15, 2025
🔴 The following checks failed:
Runtime Issues:
{ "platform": "HomebridgeNextDNS", "name": "NextDNS", "apiKey": "testvalue", "profileId": "testvalue" }Error:
This needs to be fixed so that the plugin does not send Homebridge into a crash-restart loop. The plugin could:
- Handle missing required configuration gracefully with proper error messages
- Provide sensible defaults for missing values
- Validate configuration during startup and log helpful warnings
{ "platform": "HomebridgeNextDNS", "name": "NextDNS", "apiKey": "test-api-key-12345", "profileId": "test-value", "blockedDomains": [] }Error:
This needs to be fixed so that the plugin does not send Homebridge into a crash-restart loop. The plugin could:
- Handle missing required configuration gracefully with proper error messages
- Provide sensible defaults for missing values
- Validate configuration during startup and log helpful warnings
{ "platform": "HomebridgeNextDNS", "name": "NextDNS", "apiKey": "test-api-key-12345", "profileId": "test-value", "blockedDomains": [] }Error:
This needs to be fixed so that the plugin does not send Homebridge into a crash-restart loop. The plugin could:
- Handle missing required configuration gracefully with proper error messages
- Provide sensible defaults for missing values
- Validate configuration during startup and log helpful warnings
🟢 The following checks passed:
homepageexistsbugs.urlexists and seems a valid URLkeywordsexist and contain'homebridge-plugin''preinstall'inscriptsis not present'install'inscriptsis not present'postinstall'inscriptsis not presentengines.nodeproperty is compatible with Node 20engines.nodeproperty is compatible with Node 22engines.homebridgeproperty is compatible with Homebridge 1.11.0typepropertypropertiesfor object typepluginAliaspluginTypeis set to'platform'nameschema propertyhomebridgewas not installed as a dependencyhap-nodejswas not installed as a dependency/checkto run the checks again. Let us know if you need any help.If updating your
package.jsonandconfig.schema.jsonfiles, don't forget to publish a new version to NPM.These checks were run against v1.0.2 of the plugin.
Workflow →
60 remaining items
bwp91 commentedon Sep 16, 2025
@jtokoph i left a comment above which i think would be worth a try.
if that doesn't work, not to worry.
that scenario we test is pretty new and so might have some unexpected issues (like here!). we can easily skip that check for the verification
jtokoph commentedon Sep 16, 2025
/check
github-actions commentedon Sep 16, 2025
🟢 Passed Checks
homepageexistsbugs.urlexists and seems a valid URLkeywordsexist and contain'homebridge-plugin''preinstall'inscriptsis not present'install'inscriptsis not present'postinstall'inscriptsis not presentengines.nodeproperty is compatible with Node 20engines.nodeproperty is compatible with Node 22engines.homebridgeproperty is compatible with Homebridge 1.11.0typepropertypropertiesfor object typepluginAliaspluginTypeis set to'platform'nameschema propertyhomebridgewas not installed as a dependencyhap-nodejswas not installed as a dependencyℹ️ Check Details
v1.0.7of the plugin.https://api.nextdns.io/profiles/test-valueMethods:
GET| Count:4| Scenarios: full config, network resiliencehttps://api.nextdns.io/profiles/testvalueMethods:
GET| Count:2| Scenarios: minimal required📋 Next Steps
All checks passed successfully, nice work! Your plugin and/or icon will now be manually reviewed by the Homebridge team.
jtokoph commentedon Sep 16, 2025
@bwp91 I've resolved the 2 issues I ran into with the validation script.
This code is checking the output for error strings. Even though I was catching the error, I was printing it out verbatim in order to help in debugging config issues. This still caused failure. Once I logged a more generic message instead, the test was able to continue. (It might be helpful to add a note to the failure output to ensure you don't log the failure message verbatim.)
The second error here was because the
node-fetchcode here was attempting to call theabortfunction which didn't seem to exist on the mocked request object. I didn't really dig into the code path causing this because I simply removed the dependency onnode-fetchsince I didn't realize that node has had native fetch support since v18.bwp91 commentedon Sep 16, 2025
Thanks for looking into this yes it makes sense now that the testing would complain even when logging an error. I'll get this fixed.
If you want to add the error logging back to your plugin that's totally okay 👌
github-actions commentedon Sep 16, 2025
Congratulations! Your plugin has been verified!
You can now add one of the Verified by Homebridge badges to your plugin's README:
Your plugin is now also eligible to display a ❤️ Donate button on its tile in the Homebridge UI. See https://github.com/homebridge/homebridge/wiki/Donation-Links for instructions.
Interested in getting a
@homebridge-plugins/scope for your plugin? See our Homebridge Scoped Plugins program.If for any reason in the future you can no longer maintain your plugin, please consider transferring it to our Homebridge Plugins organization.
Don't forget to join the official Homebridge Discord server, where plugin developers can get tips and advice from other developers and the Homebridge project team in the #plugin-development channel!
As a verified plugin, you can request a channel in the Discord server to discuss your plugin with users and other developers. Just ask in the #plugin-development channel.
Thank you for your contribution to the Homebridge community.
verify: homebridge-nextdns