Collaboration Store, Part LXIX

“We all need people who will give us feedback. That’s how we improve.”
Bill Gates

Last time, we released a new batch of Update Sets for the latest iteration of this effort and put out a plea for folks to take it all out for a spin. We got quite a lot of good, detailed feedback this time (Thanks, Joe!), so let’s make a quick list of everything that has been reported so far.

  • Preview errors during install
  • Application publishing failed during logo image copy
  • Application publishing failed after logo image removal
  • Application publishing failed due to Host instance being off line
  • Application publishing succeeded with new logo image, but on Host instance, logo image was attached to the version record instead of the Update Set XML file

None of these are good, but let’s take a look at them one at a time.

Preview errors during install

This one, I am able to duplicate. I also received 20 Preview errors when installing the Update Set on a new instance. Every one of the errors is basically the same.

Preview errors from initial install

Every one of the 20 errors contains the same message text.

Could not find a record in sys_hub_flow_base for column model referenced in this update

Searching for that message, I came across this:

https://community.servicenow.com/community?id=community_question&sys_id=82095744db9c70d0fb1e0b55ca9619b2

The accepted answer seems to be that this error message comes out because the Flow that you are trying to install is not present on the target instance. Well, that’s understandable, since you haven’t committed the Update Set just yet, but it doesn’t seem to me that that should be considered an error. Everyone’s answer is just to accept the remote update, but if you are shooting for a clean install, it doesn’t really look good to have these errors pop up for no reason. I looked for a way to suppress them or eliminate them, but so far I have not found anything of value. So it looks like you just accept them and continue, which is what I suggested when I first put this out there to install, but I don’t really like it. Maybe one day I will find a way to keep these messages from coming out, but for now, this is just the way that it is.

Application publishing failed during logo image copy

This one I have not been able to duplicate, which is unfortunate, because I would like to resolve it, and resolve it in a way that I can prove by running tests before and after the fix. In all of my testing, I have never had an image copy fail, so I am not sure how to proceed. However, it does occur to me that a failed logo image copy should not kill the entire process. Yes, it would be good to have the image along with the rest of the artifacts, but if that is the only issue, it seems to me that the rest of the publishing process should proceed. Here is the copy image function as it stands in version 0.7:

copyLogoImage: function(answer) {
	var logoId = '';

	var gsa = new GlideSysAttachment();
	var values = gsa.copy('ZZ_YYsys_app', answer.appSysId, 'ZZ_YYx_11556_col_store_member_application', answer.mbrAppId);
	if (values.length > 0) {
		var ids = values[values.length - 1].split(',');
		if (ids[1]) {
			logoId = ids[1];
		} else {
			answer = this.processError(answer, 'Unrecognizable response from logo attachment copy: ' +  JSON.stringify(values));
		}
	} else {
		answer = this.processError(answer, 'Unrecognizable response from logo attachment copy: ' +  JSON.stringify(values));
	}

	return logoId;
}

The processError function that is called when things go South logs the details of the error, displays a message, and then adds an error property to the answer object. I think if I remove the error property from the answer object, then the publication process will not stop at this point and everything will continue as if there was no image associated with the application. This seems like the preferable approach, at least to me. Maybe something like this:

copyLogoImage: function(answer) {
	var logoId = '';

	var gsa = new GlideSysAttachment();
	var values = gsa.copy('ZZ_YYsys_app', answer.appSysId, 'ZZ_YYx_11556_col_store_member_application', answer.mbrAppId);
	if (values.length > 0) {
		var ids = values[values.length - 1].split(',');
		if (ids[1]) {
			logoId = ids[1];
		} else {
			answer = this.processError(answer, 'Unrecognizable response from logo attachment copy: ' +  JSON.stringify(values));
			delete answer.error;
		}
	} else {
		answer = this.processError(answer, 'Unrecognizable response from logo attachment copy: ' +  JSON.stringify(values));
		delete answer.error;
	}

	return logoId;
}

That still doesn’t explain why this particular image could not be copied, but at least it would allow the publishing of the application to continue.

Application publishing failed after logo image removal

This is another one that I cannot seem to duplicate. The code related to an application image is fairly straightforward: if the app has an image and the store record does not, then it copies it over; otherwise, it does not do anything at all. If the app had no image, then if the publishing failed, it must have failed somewhere else, as the image copy function should not have even been invoked. Here is the relevant section of code:

if (sysAppGR.getValue('logo') && !mbrAppGR.getValue('logo')) {
	mbrAppGR.setValue('logo', this.copyLogoImage(answer));
}

If the app had no logo image, then nothing should have happened. I will have to look into this one a little deeper any maybe ask for a little more information before I understand what happened on this one.

Application publishing failed due to Host instance being off line

This is not actually a problem with the app, as there is no way to publish an application to a Host that is not up and running. but it does bring up an interesting question: should we check to see if the Host is available before we launch the process? That would at least prevent someone from going through half of the process only to have it die when it tries to move the artifacts over to the Host. We already have a getStoreInfo function that would tell us if the Host was available or not, so it wouldn’t take much to add a quick check before we launched the publishing process, and then inform the operator if things were not going to work out.

Application publishing succeeded with new logo image, but on Host instance, logo image was attached to the version record instead of the Update Set XML file

I have not found the source of this one just yet, but it appears to me that one or more sys_id values got passed to the wrong function or written to the wrong variable. Since everything turned out OK on the original Client, but ended up in the wrong place on the Host, the problem has to be in the REST API calls made from the Client to the Host. There are three calls that move attachments, one for the instance logo image, one for the application logo image, and one for the Update Set XML file attached to the version record. Either the logo image API call attached the logo to the wrong base record or the Update Set XML file call sent over the wrong attachment. A review of the relevant REST API call log records might reveal which one caused the problem, but I will dig through the code for both and see if I can understand how this might have happened. Obviously, you cannot install the app if you don’t have the Update Set XML file attached to the version record. This one definitely has to be fixed.

This was all great feedback, and very detailed, including copies of log file entries. That is very helpful in diagnosing these issue. If anyone else is having similar issues, please report them as well, and include as much information as you feel would be appropriate. And if someone has pulled this down and was able to run things without running into these issues, I would love to hear about that as well. As always, all feedback is welcome, positive, negative, or otherwise.

And Joe, if you are still willing to do a little more testing, try to publish a different app from your other Client, and see if you run into any similar issues with that. If you can find a fourth instance to join your trio, you might have the owner of that instance give this a shot as well. And thanks again for your assistance. It is very much appreciated. Thanks to all of you for helping to make this work the way that it should. I look forward to hearing more from anyone willing to give this all a try. Next time, we will take a look at any additional feedback, as well as any modifications that have been implemented as a result of the feedback that we have received thus far.

5 thoughts on “Collaboration Store, Part LXIX”

  • From the second client I loaded a different app. This app didn’t have a logo so I added one. Published to collaboration store without error. Looking at the Member apps on the host, the same issue as before; the logo appears as an attachment on the client version record and no xml record. I copied a swath of log errors:

    HMAC validation failed for: 0eef3e7073321010fa4be27bcaf6a72c : com.glide.kmf.AKMFKeyRegistry$KeyRegistryException: Error while computing HMAC for key id: 0eef3e7073321010fa4be27bcaf6a72c, registry: class com.glide.kmf.LocalRegistryWrapper, message: Could not retrieve hmac key from com.glide.kmf.KMFInstanceKeyRegistry: com.glide.kmf.AKMFKeyRegistry$KeyRegistryException: Error while computing HMAC for key id: 0eef3e7073321010fa4be27bcaf6a72c, registry: class com.glide.kmf.LocalRegistryWrapper, message: Could not retrieve hmac key from com.glide.kmf.KMFInstanceKeyRegistry: com.glide.kmf.AKMFKeyRegistry.validateHmac(AKMFKeyRegistry.java:377)
    com.glide.kmf.KMFModuleKeyRegistry.getKeyById(KMFModuleKeyRegistry.java:158)
    com.glide.kmf.KMFModuleKeyRegistry.getKeyByType(KMFModuleKeyRegistry.java:85)
    com.glide.kmf.KMFOutputBaseBuilder.getKMFOutputObject(KMFOutputBaseBuilder.java:112)
    com.glide.kmf.KMFOutputStringBuilder.apply(KMFOutputStringBuilder.java:22)
    com.glide.kmf.KMFGlideEncrypter.decrypt(KMFGlideEncrypter.java:180)
    com.glide.util.Encrypter.decrypt(Encrypter.java:105)
    com.glide.script.glide_elements.GlideElementPassword2.getDecryptedValue(GlideElementPassword2.java:114)
    com.glide.notification.Configuration.(Configuration.java:61)
    com.glide.notification.inbound.POP3Reader.(POP3Reader.java:104)
    com.glide.notification.inbound.EmailReader.getEmailReader(EmailReader.java:126)
    com.glide.notification.inbound.EmailReader.getEmailReader(EmailReader.java:112)
    com.glide.email_accounts.EmailReaderJob.readEmailAccountsSerially(EmailReaderJob.java:110)
    com.glide.email_accounts.EmailReaderJob.execute(EmailReaderJob.java:93)
    com.glide.schedule.JobExecutor.lambda$executeJob$0(JobExecutor.java:129)
    com.glide.schedule.JobExecutor.executeJob(JobExecutor.java:132)
    com.glide.schedule.JobExecutor.execute(JobExecutor.java:116)
    com.glide.schedule_v2.SchedulerWorkerThread.executeJob(SchedulerWorkerThread.java:338)
    com.glide.schedule_v2.SchedulerWorkerThread.lambda$process$0(SchedulerWorkerThread.java:220)
    com.glide.worker.TransactionalWorkerThread.executeInTransaction(TransactionalWorkerThread.java:35)
    com.glide.schedule_v2.SchedulerWorkerThread.process(SchedulerWorkerThread.java:220)
    com.glide.schedule_v2.SchedulerWorkerThread.run(SchedulerWorkerThread.java:101)
    com.glide.ui.ServletErrorListener

    2022-08-02 09:58:19
    Error Failure getting key from the KMF. Key ID: 1b87ad2073321010fa4be27bcaf6a730, Error: com.glide.kmf.commons.CryptoOperationException: Error decrypting key bytes, key not present.: com.glide.kmf.commons.CryptoOperationException: Error decrypting key bytes, key not present.: com.glide.kmf.KMFFormattedKeyUnwrappingOperation.decryptKeyBytes(KMFFormattedKeyUnwrappingOperation.java:56)
    com.glide.kmf.LocalRegistryWrapper.unwrapKey(LocalRegistryWrapper.java:41)
    com.glide.kmf.AKMFKeyRegistry.getKeyById(AKMFKeyRegistry.java:117)
    com.glide.kmf.KMFInstanceKeyRegistry.getKeyByType(KMFInstanceKeyRegistry.java:245)
    com.glide.kmf.KMFInstanceKeyRegistry.getKeyByType(KMFInstanceKeyRegistry.java:224)
    com.glide.kmf.LocalRegistryHMACGenerator.computeHMAC(LocalRegistryHMACGenerator.java:30)
    com.glide.kmf.AKMFKeyRegistry.validateHmac(AKMFKeyRegistry.java:366)
    com.glide.kmf.KMFModuleKeyRegistry.getKeyById(KMFModuleKeyRegistry.java:158)
    com.glide.kmf.KMFModuleKeyRegistry.getKeyByType(KMFModuleKeyRegistry.java:85)
    com.glide.kmf.KMFOutputBaseBuilder.getKMFOutputObject(KMFOutputBaseBuilder.java:112)
    com.glide.kmf.KMFOutputStringBuilder.apply(KMFOutputStringBuilder.java:22)
    com.glide.kmf.KMFGlideEncrypter.decrypt(KMFGlideEncrypter.java:180)
    com.glide.util.Encrypter.decrypt(Encrypter.java:105)
    com.glide.script.glide_elements.GlideElementPassword2.getDecryptedValue(GlideElementPassword2.java:114)
    com.glide.notification.Configuration.(Configuration.java:61)
    com.glide.notification.inbound.POP3Reader.(POP3Reader.java:104)
    com.glide.notification.inbound.EmailReader.getEmailReader(EmailReader.java:126)
    com.glide.notification.inbound.EmailReader.getEmailReader(EmailReader.java:112)
    com.glide.email_accounts.EmailReaderJob.readEmailAccountsSerially(EmailReaderJob.java:110)
    com.glide.email_accounts.EmailReaderJob.execute(EmailReaderJob.java:93)
    com.glide.schedule.JobExecutor.lambda$executeJob$0(JobExecutor.java:129)
    com.glide.schedule.JobExecutor.executeJob(JobExecutor.java:132)
    com.glide.schedule.JobExecutor.execute(JobExecutor.java:116)
    com.glide.schedule_v2.SchedulerWorkerThread.executeJob(SchedulerWorkerThread.java:338)
    com.glide.schedule_v2.SchedulerWorkerThread.lambda$process$0(SchedulerWorkerThread.java:220)
    com.glide.worker.TransactionalWorkerThread.executeInTransaction(TransactionalWorkerThread.java:35)
    com.glide.schedule_v2.SchedulerWorkerThread.process(SchedulerWorkerThread.java:220)
    com.glide.schedule_v2.SchedulerWorkerThread.run(SchedulerWorkerThread.java:101)
    com.glide.ui.ServletErrorListener

    2022-08-02 09:57:08
    Information Table: sys_cache_flush, time: 0:00:00.012 {total rows=2056, started=2022-08-02 09:57:08, bulk operations time=0:00:00.005, estimated delete count=13, estimate time=0:00:00.007, deleteMethod=chunkDelete} TableCleaner

    2022-08-02 09:57:00
    Information 0 *** Script

    2022-08-02 09:56:45
    Error Failure getting key from the KMF. Key ID: 1b87ad2073321010fa4be27bcaf6a730, Error: com.glide.kmf.commons.CryptoOperationException: Error decrypting key bytes, key not present.: com.glide.kmf.commons.CryptoOperationException: Error decrypting key bytes, key not present.: com.glide.kmf.KMFFormattedKeyUnwrappingOperation.decryptKeyBytes(KMFFormattedKeyUnwrappingOperation.java:56)
    com.glide.kmf.LocalRegistryWrapper.unwrapKey(LocalRegistryWrapper.java:41)
    com.glide.kmf.AKMFKeyRegistry.getKeyById(AKMFKeyRegistry.java:117)
    com.glide.kmf.KMFInstanceKeyRegistry.getKeyByType(KMFInstanceKeyRegistry.java:245)
    com.glide.kmf.KMFInstanceKeyRegistry.getKeyByType(KMFInstanceKeyRegistry.java:224)
    com.glide.kmf.LocalRegistryHMACGenerator.computeHMAC(LocalRegistryHMACGenerator.java:30)
    com.glide.kmf.AKMFKeyRegistry.validateHmac(AKMFKeyRegistry.java:366)
    com.glide.kmf.KMFModuleKeyRegistry.getKeyById(KMFModuleKeyRegistry.java:158)
    com.glide.kmf.KMFModuleKeyRegistry.getKeyByType(KMFModuleKeyRegistry.java:85)
    com.glide.kmf.KMFOutputBaseBuilder.getKMFOutputObject(KMFOutputBaseBuilder.java:112)
    com.glide.kmf.KMFOutputStringBuilder.apply(KMFOutputStringBuilder.java:22)
    com.glide.kmf.KMFGlideEncrypter.decrypt(KMFGlideEncrypter.java:180)
    com.glide.util.Encrypter.decrypt(Encrypter.java:105)
    com.glide.script.glide_elements.GlideElementPassword2.getDecryptedValue(GlideElementPassword2.java:114)
    com.glide.notification.Configuration.(Configuration.java:61)
    com.glide.notification.inbound.POP3Reader.(POP3Reader.java:104)
    com.glide.notification.inbound.EmailReader.getEmailReader(EmailReader.java:126)
    com.glide.notification.inbound.EmailReader.getEmailReader(EmailReader.java:112)
    com.glide.email_accounts.EmailReaderJob.readEmailAccountsSerially(EmailReaderJob.java:110)
    com.glide.email_accounts.EmailReaderJob.execute(EmailReaderJob.java:93)
    com.glide.schedule.JobExecutor.lambda$executeJob$0(JobExecutor.java:129)
    com.glide.schedule.JobExecutor.executeJob(JobExecutor.java:132)
    com.glide.schedule.JobExecutor.execute(JobExecutor.java:116)
    com.glide.schedule_v2.SchedulerWorkerThread.executeJob(SchedulerWorkerThread.java:338)
    com.glide.schedule_v2.SchedulerWorkerThread.lambda$process$0(SchedulerWorkerThread.java:220)
    com.glide.worker.TransactionalWorkerThread.executeInTransaction(TransactionalWorkerThread.java:35)
    com.glide.schedule_v2.SchedulerWorkerThread.process(SchedulerWorkerThread.java:220)
    com.glide.schedule_v2.SchedulerWorkerThread.run(SchedulerWorkerThread.java:101)
    com.glide.ui.ServletErrorListener

    2022-08-02 09:56:45
    Error HMAC validation failed for: 0eef3e7073321010fa4be27bcaf6a72c : com.glide.kmf.AKMFKeyRegistry$KeyRegistryException: Error while computing HMAC for key id: 0eef3e7073321010fa4be27bcaf6a72c, registry: class com.glide.kmf.LocalRegistryWrapper, message: Could not retrieve hmac key from com.glide.kmf.KMFInstanceKeyRegistry: com.glide.kmf.AKMFKeyRegistry$KeyRegistryException: Error while computing HMAC for key id: 0eef3e7073321010fa4be27bcaf6a72c, registry: class com.glide.kmf.LocalRegistryWrapper, message: Could not retrieve hmac key from com.glide.kmf.KMFInstanceKeyRegistry: com.glide.kmf.AKMFKeyRegistry.validateHmac(AKMFKeyRegistry.java:377)
    com.glide.kmf.KMFModuleKeyRegistry.getKeyById(KMFModuleKeyRegistry.java:158)
    com.glide.kmf.KMFModuleKeyRegistry.getKeyByType(KMFModuleKeyRegistry.java:85)
    com.glide.kmf.KMFOutputBaseBuilder.getKMFOutputObject(KMFOutputBaseBuilder.java:112)
    com.glide.kmf.KMFOutputStringBuilder.apply(KMFOutputStringBuilder.java:22)
    com.glide.kmf.KMFGlideEncrypter.decrypt(KMFGlideEncrypter.java:180)
    com.glide.util.Encrypter.decrypt(Encrypter.java:105)
    com.glide.script.glide_elements.GlideElementPassword2.getDecryptedValue(GlideElementPassword2.java:114)
    com.glide.notification.Configuration.(Configuration.java:61)
    com.glide.notification.inbound.POP3Reader.(POP3Reader.java:104)
    com.glide.notification.inbound.EmailReader.getEmailReader(EmailReader.java:126)
    com.glide.notification.inbound.EmailReader.getEmailReader(EmailReader.java:112)
    com.glide.email_accounts.EmailReaderJob.readEmailAccountsSerially(EmailReaderJob.java:110)
    com.glide.email_accounts.EmailReaderJob.execute(EmailReaderJob.java:93)
    com.glide.schedule.JobExecutor.lambda$executeJob$0(JobExecutor.java:129)
    com.glide.schedule.JobExecutor.executeJob(JobExecutor.java:132)
    com.glide.schedule.JobExecutor.execute(JobExecutor.java:116)
    com.glide.schedule_v2.SchedulerWorkerThread.executeJob(SchedulerWorkerThread.java:338)
    com.glide.schedule_v2.SchedulerWorkerThread.lambda$process$0(SchedulerWorkerThread.java:220)
    com.glide.worker.TransactionalWorkerThread.executeInTransaction(TransactionalWorkerThread.java:35)
    com.glide.schedule_v2.SchedulerWorkerThread.process(SchedulerWorkerThread.java:220)
    com.glide.schedule_v2.SchedulerWorkerThread.run(SchedulerWorkerThread.java:101)
    com.glide.ui.ServletErrorListener

    2022-08-02 09:55:41
    Error HMAC validation failed for: 0eef3e7073321010fa4be27bcaf6a72c : com.glide.kmf.AKMFKeyRegistry$KeyRegistryException: Error while computing HMAC for key id: 0eef3e7073321010fa4be27bcaf6a72c, registry: class com.glide.kmf.LocalRegistryWrapper, message: Could not retrieve hmac key from com.glide.kmf.KMFInstanceKeyRegistry: com.glide.kmf.AKMFKeyRegistry$KeyRegistryException: Error while computing HMAC for key id: 0eef3e7073321010fa4be27bcaf6a72c, registry: class com.glide.kmf.LocalRegistryWrapper, message: Could not retrieve hmac key from com.glide.kmf.KMFInstanceKeyRegistry: com.glide.kmf.AKMFKeyRegistry.validateHmac(AKMFKeyRegistry.java:377)
    com.glide.kmf.KMFModuleKeyRegistry.getKeyById(KMFModuleKeyRegistry.java:158)
    com.glide.kmf.KMFModuleKeyRegistry.getKeyByType(KMFModuleKeyRegistry.java:85)
    com.glide.kmf.KMFOutputBaseBuilder.getKMFOutputObject(KMFOutputBaseBuilder.java:112)
    com.glide.kmf.KMFOutputStringBuilder.apply(KMFOutputStringBuilder.java:22)
    com.glide.kmf.KMFGlideEncrypter.decrypt(KMFGlideEncrypter.java:180)
    com.glide.util.Encrypter.decrypt(Encrypter.java:105)
    com.glide.script.glide_elements.GlideElementPassword2.getDecryptedValue(GlideElementPassword2.java:114)
    com.glide.notification.Configuration.(Configuration.java:61)
    com.glide.notification.inbound.POP3Reader.(POP3Reader.java:104)
    com.glide.notification.inbound.EmailReader.getEmailReader(EmailReader.java:126)
    com.glide.notification.inbound.EmailReader.getEmailReader(EmailReader.java:112)
    com.glide.email_accounts.EmailReaderJob.readEmailAccountsSerially(EmailReaderJob.java:110)
    com.glide.email_accounts.EmailReaderJob.execute(EmailReaderJob.java:93)
    com.glide.schedule.JobExecutor.lambda$executeJob$0(JobExecutor.java:129)
    com.glide.schedule.JobExecutor.executeJob(JobExecutor.java:132)
    com.glide.schedule.JobExecutor.execute(JobExecutor.java:116)
    com.glide.schedule_v2.SchedulerWorkerThread.executeJob(SchedulerWorkerThread.java:338)
    com.glide.schedule_v2.SchedulerWorkerThread.lambda$process$0(SchedulerWorkerThread.java:220)
    com.glide.worker.TransactionalWorkerThread.executeInTransaction(TransactionalWorkerThread.java:35)
    com.glide.schedule_v2.SchedulerWorkerThread.process(SchedulerWorkerThread.java:220)
    com.glide.schedule_v2.SchedulerWorkerThread.run(SchedulerWorkerThread.java:101)
    com.glide.ui.ServletErrorListener

    2022-08-02 09:55:41
    Error Failure getting key from the KMF. Key ID: 1b87ad2073321010fa4be27bcaf6a730, Error: com.glide.kmf.commons.CryptoOperationException: Error decrypting key bytes, key not present.: com.glide.kmf.commons.CryptoOperationException: Error decrypting key bytes, key not present.: com.glide.kmf.KMFFormattedKeyUnwrappingOperation.decryptKeyBytes(KMFFormattedKeyUnwrappingOperation.java:56)
    com.glide.kmf.LocalRegistryWrapper.unwrapKey(LocalRegistryWrapper.java:41)
    com.glide.kmf.AKMFKeyRegistry.getKeyById(AKMFKeyRegistry.java:117)
    com.glide.kmf.KMFInstanceKeyRegistry.getKeyByType(KMFInstanceKeyRegistry.java:245)
    com.glide.kmf.KMFInstanceKeyRegistry.getKeyByType(KMFInstanceKeyRegistry.java:224)
    com.glide.kmf.LocalRegistryHMACGenerator.computeHMAC(LocalRegistryHMACGenerator.java:30)
    com.glide.kmf.AKMFKeyRegistry.validateHmac(AKMFKeyRegistry.java:366)
    com.glide.kmf.KMFModuleKeyRegistry.getKeyById(KMFModuleKeyRegistry.java:158)
    com.glide.kmf.KMFModuleKeyRegistry.getKeyByType(KMFModuleKeyRegistry.java:85)
    com.glide.kmf.KMFOutputBaseBuilder.getKMFOutputObject(KMFOutputBaseBuilder.java:112)
    com.glide.kmf.KMFOutputStringBuilder.apply(KMFOutputStringBuilder.java:22)
    com.glide.kmf.KMFGlideEncrypter.decrypt(KMFGlideEncrypter.java:180)
    com.glide.util.Encrypter.decrypt(Encrypter.java:105)
    com.glide.script.glide_elements.GlideElementPassword2.getDecryptedValue(GlideElementPassword2.java:114)
    com.glide.notification.Configuration.(Configuration.java:61)
    com.glide.notification.inbound.POP3Reader.(POP3Reader.java:104)
    com.glide.notification.inbound.EmailReader.getEmailReader(EmailReader.java:126)
    com.glide.notification.inbound.EmailReader.getEmailReader(EmailReader.java:112)
    com.glide.email_accounts.EmailReaderJob.readEmailAccountsSerially(EmailReaderJob.java:110)
    com.glide.email_accounts.EmailReaderJob.execute(EmailReaderJob.java:93)
    com.glide.schedule.JobExecutor.lambda$executeJob$0(JobExecutor.java:129)
    com.glide.schedule.JobExecutor.executeJob(JobExecutor.java:132)
    com.glide.schedule.JobExecutor.execute(JobExecutor.java:116)
    com.glide.schedule_v2.SchedulerWorkerThread.executeJob(SchedulerWorkerThread.java:338)
    com.glide.schedule_v2.SchedulerWorkerThread.lambda$process$0(SchedulerWorkerThread.java:220)
    com.glide.worker.TransactionalWorkerThread.executeInTransaction(TransactionalWorkerThread.java:35)
    com.glide.schedule_v2.SchedulerWorkerThread.process(SchedulerWorkerThread.java:220)
    com.glide.schedule_v2.SchedulerWorkerThread.run(SchedulerWorkerThread.java:101)
    com.glide.ui.ServletErrorListener

    2022-08-02 09:55:41
    Information No dependencies found ApplicationWorker

    2022-08-02 09:55:33
    Information Table: sys_db_cache, time: 0:00:00.019 {attachments=0:00:00.002, total rows=9, started=2022-08-02 09:55:33, bulk operations time=0:00:00.009, estimated delete count=3, estimate time=0:00:00.010, deleteMethod=chunkDelete} TableCleaner

    2022-08-02 09:55:05
    Warning Unknown exception retrieving content from CDN: null EmbeddedHelp

    2022-08-02 09:55:05
    Information checkAvailableUpdates(true, true) sn_appclient

    2022-08-02 09:55:05
    Information appNotificationConfig: {“appAvailableForInstall”:{“count”:0,”filter”:[{“category”:”License Status”,”id”:”sub”},{“category”:”Obtained”,”id”:”not_installed”},{“category”:”Listing type”,”id”:”show_apps_only”}],”linkText”:”Apps available for install”},”appAvailableForUpdate”:{“count”:0,”filter”:[{“category”:”Obtained”,”id”:”updates”},{“category”:”Listing type”,”id”:”show_apps_only”}],”linkText”:”App Updates”},”appDeactivationRequests”:{“count”:0,”filter”:[{“category”:”Indicators”,”id”:”trial_deactivation_requested”},{“category”:”Listing type”,”id”:”show_apps_only”}],”linkText”:”App deactivation requests”},”appEntitlementRevoked”:{“count”:0,”filter”:[{“category”:”Indicators”,”id”:”entitlement_revoked”},{“category”:”Listing type”,”id”:”show_apps_only”}],”linkText”:”Apps with entitlement revoked”}} sn_appclient

    2022-08-02 09:55:05
    Information Installed Customizations: []

  • FYI, the Rest API Log tab is empty on the b client. I took a quick look at the Node Log File Browser at entries around the time that the host entry was created but didn’t see anything that related but that is more likely an indication of not knowing what to look for.

    • Thanks. Good to know. The REST API logs are related to the target instance, so on any given Client, the logs would appear as a Related List under the Host instance record. On the Host, contacts with the individual Client instances will appear as a Related List on each of the individual Client instance records.

  • I found the rest api logs as you directed. None had an error indicated. Sorted by the most recent:

    https://dev69362.service-now.com/api/now/attachment/file?table_name=ZZ_YYx_11556_col_store_member_application&table_sys_id=2127acc297855110b40ebde3f153afee&file_name=logo
    {
    “result”: {
    “size_bytes”: “301581”,
    “file_name”: “logo”,
    “sys_mod_count”: “0”,
    “average_image_color”: “”,
    “image_width”: “”,
    “sys_updated_on”: “2022-08-02 16:55:54”,
    “sys_tags”: “”,
    “table_name”: “ZZ_YYx_11556_col_store_member_application”,
    “sys_id”: “3d27a88297855110b40ebde3f153afa1”,
    “image_height”: “”,
    “sys_updated_by”: “csworker1.dev69362”,
    “download_link”: “https://dev69362.service-now.com/api/now/attachment/3d27a88297855110b40ebde3f153afa1/file”,
    “content_type”: “image/jpeg”,
    “sys_created_on”: “2022-08-02 16:55:54”,
    “size_compressed”: “301114”,
    “compressed”: “true”,
    “state”: “pending”,
    “table_sys_id”: “2127acc297855110b40ebde3f153afee”,
    “chunk_size_bytes”: “700000”,
    “hash”: “f4719496315a146eeb0deda2635b04c12fcc913beb904bfb98fe916088ffb87c”,
    “sys_created_by”: “csworker1.dev69362”
    }
    }

    https://dev69362.service-now.com/api/now/attachment/file?table_name=x_11556_col_store_member_application_version&table_sys_id=b127a88297855110b40ebde3f153afa6&file_name=logo
    {
    “result”: {
    “size_bytes”: “547670”,
    “file_name”: “logo”,
    “sys_mod_count”: “0”,
    “average_image_color”: “”,
    “image_width”: “”,
    “sys_updated_on”: “2022-08-02 16:55:55”,
    “sys_tags”: “”,
    “table_name”: “x_11556_col_store_member_application_version”,
    “sys_id”: “c227acc297855110b40ebde3f153aff3”,
    “image_height”: “”,
    “sys_updated_by”: “csworker1.dev69362”,
    “download_link”: “https://dev69362.service-now.com/api/now/attachment/c227acc297855110b40ebde3f153aff3/file”,
    “content_type”: “image/jpeg”,
    “sys_created_on”: “2022-08-02 16:55:55”,
    “size_compressed”: “247152”,
    “compressed”: “true”,
    “state”: “pending”,
    “table_sys_id”: “b127a88297855110b40ebde3f153afa6”,
    “chunk_size_bytes”: “700000”,
    “hash”: “8b5a07a6c0edf042df4b3c24e729036562985b705427ba7e33768566de94e96f”,
    “sys_created_by”: “csworker1.dev69362”
    }
    }

    https://dev69362.service-now.com/api/now/table/x_11556_col_store_member_application
    {
    “name”: “FeudNow”,
    “scope”: “x_159204_feudnow”,
    “description”: “A ServiceNow team building experience based on the hit game show, Family Feud.”,
    “current_version”: “0.9.5”,
    “active”: “true”,
    “provider”: “c3ac10fb97701110b40ebde3f153aff7”
    }
    {
    “result”: {
    “sys_mod_count”: “0”,
    “active”: “true”,
    “current_version”: “0.9.5”,
    “description”: “A ServiceNow team building experience based on the hit game show, Family Feud.”,
    “sys_updated_on”: “2022-08-02 16:55:54”,
    “sys_tags”: “”,
    “sys_id”: “2127acc297855110b40ebde3f153afee”,
    “sys_updated_by”: “csworker1.dev69362”,
    “application”: “”,
    “provider”: {
    “link”: “https://dev69362.service-now.com/api/now/table/x_11556_col_store_member_organization/c3ac10fb97701110b40ebde3f153aff7”,
    “value”: “c3ac10fb97701110b40ebde3f153aff7”
    },
    “sys_created_on”: “2022-08-02 16:55:54”,
    “scope”: “x_159204_feudnow”,
    “name”: “FeudNow”,
    “logo”: “”,
    “sys_created_by”: “csworker1.dev69362”
    }
    }

    https://dev69362.service-now.com/api/now/table/x_11556_col_store_member_application/2127acc297855110b40ebde3f153afee
    {
    “logo”: “3d27a88297855110b40ebde3f153afa1”
    }
    {
    “result”: {
    “sys_mod_count”: “1”,
    “active”: “true”,
    “current_version”: “0.9.5”,
    “description”: “A ServiceNow team building experience based on the hit game show, Family Feud.”,
    “sys_updated_on”: “2022-08-02 16:55:55”,
    “sys_tags”: “”,
    “sys_id”: “2127acc297855110b40ebde3f153afee”,
    “sys_updated_by”: “csworker1.dev69362”,
    “application”: “”,
    “provider”: {
    “link”: “https://dev69362.service-now.com/api/now/table/x_11556_col_store_member_organization/c3ac10fb97701110b40ebde3f153aff7”,
    “value”: “c3ac10fb97701110b40ebde3f153aff7”
    },
    “sys_created_on”: “2022-08-02 16:55:54”,
    “scope”: “x_159204_feudnow”,
    “name”: “FeudNow”,
    “logo”: “3d27a88297855110b40ebde3f153afa1”,
    “sys_created_by”: “csworker1.dev69362”
    }
    }

    https://dev69362.service-now.com/api/now/table/x_11556_col_store_member_application_version
    {
    “member_application”: “2127acc297855110b40ebde3f153afee”,
    “version”: “0.9.5”,
    “built_on”: “glide-sandiego-12-22-2021__patch1-03-02-”
    }

    {
    “result”: {
    “built_on”: “glide-sandiego-12-22-2021__patch1-03-02-“,
    “installed”: “false”,
    “sys_id”: “b127a88297855110b40ebde3f153afa6”,
    “sys_updated_by”: “csworker1.dev69362”,
    “sys_created_on”: “2022-08-02 16:55:55”,
    “sys_mod_count”: “0”,
    “sys_updated_on”: “2022-08-02 16:55:55”,
    “sys_tags”: “”,
    “version”: “0.9.5”,
    “member_application”: {
    “link”: “https://dev69362.service-now.com/api/now/table/x_11556_col_store_member_application/2127acc297855110b40ebde3f153afee”,
    “value”: “2127acc297855110b40ebde3f153afee”
    },
    “sys_created_by”: “csworker1.dev69362”
    }
    }

    https://dev69362.service-now.com/api/now/table/x_11556_col_store_member_organization?sysparm_fields=sys_id&sysparm_query=instance%3Ddev82759
    {
    “result”: [
    {
    “sys_id”: “c3ac10fb97701110b40ebde3f153aff7”
    }
    ]
    }

    https://dev69362.service-now.com/api/now/table/x_11556_col_store_member_application?sysparm_fields=sys_id&sysparm_query=provider.instance%3Ddev82759%5Ename%3DFeudNow
    {
    “result”: []
    }

    https://dev69362.service-now.com/api/x_11556_col_store/v1/register
    {
    “sys_id”: “7aac9cf3977011107b4afef3a253afe2”,
    “name”: “Silly Billy”,
    “instance”: “dev82759”,
    “email”: “xxxxxxxx”,
    “description”: “Silly Billy Client”
    }
    {
    “result”: {
    “status”: “success”,
    “info”: {
    “message”: “Registration complete”,
    “detail”: “This instance has been successfully registered with this store.”
    }
    }
    }

    https://dev69362.service-now.com/api/x_11556_col_store/v1/info
    {
    “result”: {
    “status”: “success”,
    “info”: {
    “instance”: “dev69362”,
    “accepted”: “2022-07-26 16:13:23”,
    “description”: “JBS Store Test”,
    “sys_id”: “7e4a90bb97701110b40ebde3f153afc0”,
    “name”: “Joe Blogs Store”,
    “email”: “xxxxxxxxx”
    }
    }
    }

Comments are closed.