When you add a tracking to a shipment you can use the Custom option. The tracking is then an array instead of an object. The popup however uses it as an object which creates an exception.
I think the fix is easy (vendor/magento/module-shipping/view/frontend/templates/tracking/details.phtml):
<table class="data table order tracking" id="tracking-table-popup-<?php /* @noEscape */ echo is_object($track) ? $track->getTracking() : null; ?>">
instead of
<table class="data table order tracking" id="tracking-table-popup-<?php /* @noEscape */ echo $track->getTracking(); ?>">
Issue in progress @epson121
This seems to be solved in the current develop branch (2.2 release)
Already fixed and merged into develop branch.
I have changed the code as provided above for getTracking() function issue
Now the getTracking() issue was gone and a new one arises as below:
PHP Fatal error: Call to a member function getProgressdetail() on array in /home/magento/public_html/vendor/magento/module-shipping/view/frontend/templates/tracking/popup.phtml on line 34
@MagentoRize See this commit which shows the other changes to make if you have to patch this before upgrading to Magento 2.2: 2c5b4c5
I just got this issue on the latest version 2.3