Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

kpm diagnostic tool fails when there are no records in the tenant_kvs table with certain keys

Open
#263 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
ruby
Domain
cli, tooling

Research direction

Start with the kpm diagnostic flow in tenant_config.rb, diagnostic_file.rb, and tasks.rb, using the reported kpm diagnostic command to reproduce the failure. Trace how missing tenant_kvs keys are handled and verify the diagnostic completes when those records are inactive or absent.

Written by the indexing model from the issue text.

Description

The kpm diagnostic tool fails when there are no records in the tenant_kvs table with the following keys:

PLUGIN_CONFIG PUSH_NOTIFICATION_CB PER_TENANT_CONFIG PLUGIN_PAYMENT_STATE_MACHINE CATALOG OVERDUE_CONFIG INVOICE_TRANSLATION CATALOG_TRANSLATION INVOICE_TEMPLATE INVOICE_MP_TEMPLATE

Steps to reproduce:

  1. Create a new tenant. This will insert a record in the tenant_kvs table with the key CATALOG
  2. Mark the record from the tenant_kvs table as in_active (Run update tenant_kvs set is_active=0 where tenant_record_id=<id here>; )
  3. Run the kpm diagnostic tool as follows:
kpm diagnostic --killbill-api-credentials=<api key> <api secret> --account-export=<account id> --killbill-url http://localhost:8080
  1. This displays the following error:
I, [2024-04-05T14:12:08.319099 #28696]  INFO -- : Retrieving tenant configuration
E, [2024-04-05T14:12:11.075882 #28696] ERROR -- : Data for key_prefix= not found
E, [2024-04-05T14:12:11.077854 #28696] ERROR -- : D:/Software/Ruby27-x64/lib/ruby/gems/2.7.0/gems/kpm-0.11.1/lib/kpm/tenant_config.rb:44:in `export'
D:/Software/Ruby27-x64/lib/ruby/gems/2.7.0/gems/kpm-0.11.1/lib/kpm/diagnostic_file.rb:85:in `retrieve_tenant_config'
D:/Software/Ruby27-x64/lib/ruby/gems/2.7.0/gems/kpm-0.11.1/lib/kpm/diagnostic_file.rb:47:in `export_data'
D:/Software/Ruby27-x64/lib/ruby/gems/2.7.0/gems/kpm-0.11.1/lib/kpm/tasks.rb:577:in `diagnostic'
D:/Software/Ruby27-x64/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
D:/Software/Ruby27-x64/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
D:/Software/Ruby27-x64/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
D:/Software/Ruby27-x64/lib/ruby/gems/2.7.0/gems/thor-1.2.1/lib/thor/base.rb:485:in `start'
D:/Software/Ruby27-x64/lib/ruby/gems/2.7.0/gems/kpm-0.11.1/bin/kpm:8:in `<top (required)>'
D:/Software/Ruby27-x64/bin/kpm:23:in `load'
D:/Software/Ruby27-x64/bin/kpm:23:in `<main>'
Dominant language
Ruby
Stars
68
Forks
94
Avg merge
3d 17h
Merged PRs (30d)
3

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from killbill/killbill-cloud

All issues in killbill/killbill-cloud

Similar issues

More Ruby issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.