Bug Root Cause Analysis



Reason

Bug

Notes

Total

 

Reason

Bug

Notes

Total

 

UI refactors

https://openlmis.atlassian.net/browse/OLMIS-3017

Caused by removing status messages from requisition object, but real cause why this was not working is Requisition Watcher which was setting $modified flag after requisition was submitted/authorized. This flag is a indicator if we have some changes in requisition object stored offline, if not application is getting new changes from server. Getting fresh changes after status change is crucial to have current comments on the screen.

21

 

https://openlmis.atlassian.net/browse/OLMIS-2837

Caused by refactor of facility/program select refactor. State param 'requestingFacilty' has been changed to 'facility' in order to be compatible with this new component. Unfortunately this parameter was used for search endpoint and this change caused lack of this parameter in request. 

 

https://openlmis.atlassian.net/browse/OLMIS-2522

Caused by messages split refactor on the UI.

 

https://openlmis.atlassian.net/browse/OLMIS-2439

Caused by https://openlmis.atlassian.net/browse/OLMIS-2050. There are conflicting opinions on how this functionality should work, which makes it easy to overlook. It would be easy to assume that this is correct behavior after refactoring the pagination.

 

https://openlmis.atlassian.net/browse/OLMIS-2488

While working on https://openlmis.atlassian.net/browse/OLMIS-2050 the message keys were changed but usage of that keys was not changed.

 

https://openlmis.atlassian.net/browse/OLMIS-2356

The whole list of columns was being passed to the validator instead of a list of the non full supply ones.

 

https://openlmis.atlassian.net/browse/OLMIS-2489

During message refactor message keys have changed but one of the if statement left unchanged, which caused to invalid values being returned.

 

https://openlmis.atlassian.net/browse/OLMIS-2352

During refactor of the template validator one of the validation wasn't implemented.

 

https://openlmis.atlassian.net/browse/OLMIS-7217

Permissions were removed from local storage and retrieved from the backend again every time when the page was refreshed or logged user changed. It to was changed to not remove permissions when the page is refreshed.

 

https://openlmis.atlassian.net/browse/OLMIS-7220

In offline mode, facilities were not retrieved from the cache. As a solution, it was updated cachedAllMinimal to get facilities from PouchDb when offline. Additionally added refactor to getAll method in local database to reject when it is not available.

 

https://openlmis.atlassian.net/browse/OLMIS-7246 https://openlmis.atlassian.net/browse/OLMIS-7259

This page is using cache and the "openlmis-cached-resource" was removing the pagination information from the response when fetching stock data (in the "query" function).

 

https://openlmis.atlassian.net/browse/OLMIS-7271

Pagination fix done in https://openlmis.atlassian.net/browse/OLMIS-7246 caused the the issue with displaying the Products.

 

https://openlmis.atlassian.net/browse/OLMIS-5491

One time binding used for iterating over collection for column generation

 

https://openlmis.atlassian.net/browse/OLMIS-7520

UI was assuming that processing period is required field, despite processing period is nullable on the backend

 

https://openlmis.atlassian.net/browse/OLMIS-7546

Plugin pouchdb-find was not in the project

 

https://openlmis.atlassian.net/browse/OLMIS-7550

New order was created with null facility

 

https://openlmis.atlassian.net/browse/OLMIS-7464

There was no condition to check if the line item with 0 SoH is newly added.

 

https://openlmis.atlassian.net/browse/OLMIS-7559

Sometimes values in quantity column are changed when row is removed on Requisition-less order page.

 

https://openlmis.atlassian.net/browse/OLMIS-7560

The active flag was changed to ‘true’ for all products every time any product was added to inventory

 

https://openlmis.atlassian.net/browse/OLMIS-7558

Validation of inactive lots was not working on Physical Inventory page.

 

https://openlmis.atlassian.net/browse/OLMIS-6034

Error message for release without order with no requisitions selected was not defined.

 

https://openlmis.atlassian.net/browse/OLMIS-7608

Error message for with the description “Bad request Trade Item is required to add a Lot Code” was not defined.

 

Other bug fixes

https://openlmis.atlassian.net/browse/OLMIS-2329



Caused by lack of check if new value is different than the previous one while running calculations in product-grid directive for each digest cycle.

It was changed while repairing lack of calculation calls for dependent columns commit

32

 

https://openlmis.atlassian.net/browse/OLMIS-7590

Caused by lack of check if recent stock on hand value was 0, the stockout days were calculated from the period between last physical inventory when SoH was zero instead of all entries when it was 0.

In order go get previous period Map<K, V> datastructure was changed to NavigableMap<K, V>

 

https://openlmis.atlassian.net/browse/OLMIS-2484



During work on https://openlmis.atlassian.net/browse/OLMIS-1409, demo-data was added to Reference-Data but FTP settings in Fulfillment were not adjusted.



 

https://openlmis.atlassian.net/browse/OLMIS-2466

Validator was using calculatedOrderQuantity instead of the requestedQuantity.

 

https://openlmis.atlassian.net/browse/OLMIS-7168

Caused by gliderlabs/alpine image which is no longer maintained.

 

https://openlmis.atlassian.net/browse/OLMIS-7179

Caused by renaming apache/incubator-superset to apache/superset

 

https://openlmis.atlassian.net/browse/OLMIS-7203

Caused by external Google Analytics dependency.

 

https://openlmis.atlassian.net/browse/OLMIS-6856

Demo-v3 has a local database on the instance. It was needed to create pgdata volume for deploy properly demo-v3 with KEEP option.

 

https://openlmis.atlassian.net/browse/OLMIS-6813

There was a method that filtered out the products in which the stock on hand was zero. For the Adjustments screen, a new method has been created that retrieves all available products in the facility - also those whose SoH is 0.

 

https://openlmis.atlassian.net/browse/OLMIS-7248

Validation was added for programs in the orderable, but when creating new product program list is null and the validation threw NullPointerException, because null check was missing.

 

https://openlmis.atlassian.net/browse/OLMIS-7253

Facilities data source is no longer used since we started using Kafka. A new materialized view has been created - facilities that have all the necessary fields.

 

https://openlmis.atlassian.net/browse/OLMIS-7254

The data in the Stock Filter and District Stockout Rates over Time weren't visible. The time range setting for these charts has been changed to 'No filter'.

 

https://openlmis.atlassian.net/browse/OLMIS-7291

The current added products were not passed as a parameter to state params

 

https://openlmis.atlassian.net/browse/OLMIS-7398

Expired nifi-registry certificate. Periodic ticket for certificate renewal was not created/finished on time. Certificate renewal automation should be considered.

 

https://openlmis.atlassian.net/browse/OLMIS-7422

Resolving supervisory nodes dataset required itself in injection

 

https://openlmis.atlassian.net/browse/OLMIS-7420

Child state was not overwriting resolved children property from parent treating it as available via dedicated provider. Another form of issue from https://openlmis.atlassian.net/browse/OLMIS-7422

 

https://openlmis.atlassian.net/browse/OLMIS-7437

Invalid docutils packge version was in use.

 

https://openlmis.atlassian.net/browse/OLMIS-7429

There was no 'Label' specified for program_name column.

 

https://openlmis.atlassian.net/browse/OLMIS-7442

For every dto transformation, request to referencedata was made. Timeout was caused by too many requests between stockmanagement abd referebcedata mikroservices

 

https://openlmis.atlassian.net/browse/OLMIS-6646

Invalid search criteria specified in supserset

 

https://openlmis.atlassian.net/browse/OLMIS-6546

Validation for unique product code was not implemented

 

https://openlmis.atlassian.net/browse/OLMIS-6600

Class for representing certain status had invalid styling

 

https://openlmis.atlassian.net/browse/OLMIS-7479

Feature to remember selection from other pages was not clearing selection after first convert

 

https://openlmis.atlassian.net/browse/OLMIS-7496

Missing entries for proper roles in referencedata.role_rights table. Entries were missing also for demo data

 

https://openlmis.atlassian.net/browse/OLMIS-7530

Endpoint /api/validSources and /api/validDestinations are not returning all resources by default and list to search on when confirming shipment was to small

 

https://openlmis.atlassian.net/browse/OLMIS-7499

When 'Remarks' is disabled in the requisition template, there is a null pointer exception when approving requisition.

 

https://openlmis.atlassian.net/browse/OLMIS-7534

Validation on product code duplicate was not checking existing orderable properly

 

https://openlmis.atlassian.net/browse/OLMIS-7527

active property was missing after creating difference between draft line items and display line items group

 

https://openlmis.atlassian.net/browse/OLMIS-7579

Validation on product quantity input was not checking empty/null values properly

 

https://openlmis.atlassian.net/browse/OLMIS-7583

Regex in form decorator didn’t detect changes in reasonQuantity field in case of removing this field from form.

 

https://openlmis.atlassian.net/browse/OLMIS-7581

There was the issue with sorting products. Now it works in such way that products are sorted by 'Original Index'.

 

https://openlmis.atlassian.net/browse/OLMIS-7582

While investigation of this bug it realized that there was an issue when there was no draft created. Next page couldn’t be loaded when user chose program and click ‘start'. ‘PhysicalInventory’ form was displayed when user clicked again on ‘start’ button. This error didn’t happened when there was already created draft. The reason of this bug was an error with handling ‘null’ in ‘physical-inventory-factory.js’ within 'getStockAdjustments’ function.

 

https://openlmis.atlassian.net/browse/OLMIS-7599

This problem was related to 'losing states of Redux' after either refreshing or reloading application.

 

https://openlmis.atlassian.net/browse/OLMIS-7593

Unaccounted Quantity was not calculated when entering the draft, nor it was saved for items in draft.

 

https://openlmis.atlassian.net/browse/OLMIS-7638

Problem caused by cached some basic data related to permissions and list of programs/facilities. Now in “requisitions->create/authorize” those data are refreshed.

 

https://openlmis.atlassian.net/browse/OLMIS-7625

The ‘Search’ button on Initiate Report and Requisition page did not included the start date of a given program, but returned all found periods for a given facility and program.

 

 

https://openlmis.atlassian.net/browse/OLMIS-7711

Caused by a method that calculates stockout days. The method did not take into account the beginning balance of a given period and also incorrectly verified the occurrence of stock on hand in a given period.

 

 

Design error

https://openlmis.atlassian.net/browse/OLMIS-6008

There was neither unique constraint nor unique index on name in facility_types table

18





















































 

https://openlmis.atlassian.net/browse/OLMIS-3146

There was no PROGRAM_MANAGE right at all, so it had to be added.

 

https://openlmis.atlassian.net/browse/OLMIS-3066

Caused by assumption that all modules that are using facility/program select component are using Requisition rights which is not true.

 

https://openlmis.atlassian.net/browse/OLMIS-3019

After authorize skipped line items are cleared and lack of price per pack field was causing the problem

 

https://openlmis.atlassian.net/browse/OLMIS-2714

Loading modal was closed too soon just after user update request finished, not after user list page was loaded.

 

https://openlmis.atlassian.net/browse/OLMIS-2548

Loading spinner close method was always called before login modal appeared. Now there is a check if loading spinner was opened before opening loading modal, if so it will be reopened after successful login.

 

https://openlmis.atlassian.net/browse/OLMIS-2514

Check for approving requisition was including only program, supervisory node was missing. Fixed for approve and reject endpoint.

 

https://openlmis.atlassian.net/browse/OLMIS-2530

Requisition repository was returning page of filtered requisition, then right were checked and paginated once again, where total elements was number of requisitions on the page.....

 

https://openlmis.atlassian.net/browse/OLMIS-2428

We were using statusText property from server response, but it turned out that it was not always available. Lack of default message caused this issue.

 

https://openlmis.atlassian.net/browse/OLMIS-2224

Offline flag at the start was always set as false at the start of offline service, so checking if user is offline just after reloading page/application always returned false. Resolved by storing offline flag in local storage.

 

https://openlmis.atlassian.net/browse/OLMIS-2481

Loading modal was closing after syncing was completed and then reopened when state changed(which happens after every requisition-related action).

 

https://openlmis.atlassian.net/browse/OLMIS-2483

Handling situation when there are no more products to add was never designed nor included in the acceptance criteria.

 

https://openlmis.atlassian.net/browse/OLMIS-2525

CalculationFactory was trying to calculate order quantity(rather than just taking the requestedQuantity) when requested quantity was empty.

 

https://openlmis.atlassian.net/browse/OLMIS-2491

Subject and Content for notifications were part of demo-data. The system that didn't used demo-data was not able to go through Requisition statuses hierarchy because of absence settings in database. Settings were moved to Transifex messages and environment variables.

 

https://openlmis.atlassian.net/browse/OLMIS-2551

No thought was given to the transactional implications when the code was written.

 

https://openlmis.atlassian.net/browse/OLMIS-2509

Incorrect calculation not taking borders into consideration which led to ever increasing table width.

 

https://openlmis.atlassian.net/browse/OLMIS-2532

During adding pagination to Manage POD view, clearing the requesting facility was not added when it was part of state params.

 

https://openlmis.atlassian.net/browse/OLMIS-2637

The password field was being cleared when we successfully logged in.

 

Questionable if this a bug

https://openlmis.atlassian.net/browse/OLMIS-2407

This is more a requirements change than a bug.

5

 

https://openlmis.atlassian.net/browse/OLMIS-2453

This is more a requirements change than a bug.

 

https://openlmis.atlassian.net/browse/OLMIS-2480

This wasn't really a bug, more like an unrepresentative demo data.

 

https://openlmis.atlassian.net/browse/OLMIS-2492

There was no way to retrieve warehouses from server before.

 

https://openlmis.atlassian.net/browse/OLMIS-5900

This is more a requirements change than a bug.

 

Not following style guide

https://openlmis.atlassian.net/browse/OLMIS-2445

UI style guide - programmers were not following styleguide sections: Titles and Buttons which say that first letter of each word should be capitalized.

3

 

https://openlmis.atlassian.net/browse/OLMIS-2471

Inline elements should have the same height.

 

https://openlmis.atlassian.net/browse/OLMIS-2436

Inline elements should be aligned to center.

 

Invalid demo data



https://openlmis.atlassian.net/browse/OLMIS-2531

Some of the requisitions that were in pre-release state had supplyingFacilityId set to a value that was not an UUID of one of the available supplying depot for that requisition.

1

 

https://openlmis.atlassian.net/browse/OLMIS-7525

Some values of orderable identifiers were uppercase but expected to be lowercase

 

 

Backend refactors

https://openlmis.atlassian.net/browse/OLMIS-3119

Caused by refactoring done to the Auth context setup in https://openlmis.atlassian.net/browse/MW-390.

6

 

https://openlmis.atlassian.net/browse/OLMIS-3461

Caused by refactor to do db filtering in https://openlmis.atlassian.net/browse/OLMIS-3187

 

https://openlmis.atlassian.net/browse/OLMIS-7169

Caused by upgrading to Spring Boot 2.x https://openlmis.atlassian.net/browse/OLMIS-6782. Since the upgrade, the Hikari connection wasn't closed and after it reached its limit (10 connections), the Jasper Reports were not generated.

 

https://openlmis.atlassian.net/browse/OLMIS-7219

Poor performance has been fixed by clearing Hibernate session after order and shipment created and setting Hibernate batch insert properties

 

https://openlmis.atlassian.net/browse/OLMIS-7251

When entity graph is used to fetch orderables with programs in one database query and the orderables are filtered by program code the list of related programs will also be filtered (not all programs will be returned for orderable).

 

https://openlmis.atlassian.net/browse/OLMIS-7376

Caused by refactoring done to the Requisition Service in https://openlmis.atlassian.net/browse/OLMIS-5226.

 



OpenLMIS: the global initiative for powerful LMIS software