IIIF manifest 403 error & single image Laminas partial URI exception

Hi, Folks,

I’m doing some testing for a project that hopes to embed this LC object in an Omeka S site. When I try to add in the manifest URI via Omeka S’s builti-in IIIF Presentation feature, however, I’m getting a 403 error. I’ve reached out to the LC about this, but I’m curious if anyone else is running into this issue?

In addition, when I try to bring in a single image within the manifest (https://tile.loc.gov/image-services/iiif/service:gdc:gdcwdl:wd:l_:10:69:0:wdl_10690:ms_vind_gr_1_038b/info.json), I’m running into this error Laminas\Uri\Exception\InvalidUriPartException Scheme "gdc" is not valid or is not accepted by Laminas\Uri\Http. When I’ve tried a second time, “gdc” was replaced with “vice” (as in “service”). I’ve looked around but haven’t been able to find any clues about what might be causing this. Any suggestions?

Thanks!

Hannah

Can you post the whole error, including the traceback part (the numbered lines after the error message)?

Here you go:

Laminas\Uri\Exception\InvalidUriPartException
			Scheme "gdc" is not valid or is not accepted by Laminas\Uri\Http
			Details:
			Laminas\Uri\Exception\InvalidUriPartException: Scheme "gdc" is not valid or is not accepted by Laminas\Uri\Http in /home/dssandb1/public_html/ag/vendor/laminas/laminas-uri/src/Uri.php:718
			Stack trace:
			#0 /home/dssandb1/public_html/ag/vendor/laminas/laminas-uri/src/Uri.php(305): Laminas\Uri\Uri->setScheme('gdc')
			#1 /home/dssandb1/public_html/ag/vendor/laminas/laminas-uri/src/Http.php(218): Laminas\Uri\Uri->parse('gdc:gdcwdl:wd:l...')
			#2 /home/dssandb1/public_html/ag/vendor/laminas/laminas-uri/src/Uri.php(165): Laminas\Uri\Http->parse('gdc:gdcwdl:wd:l...')
			#3 /home/dssandb1/public_html/ag/application/src/Media/Ingester/IIIF.php(50): Laminas\Uri\Uri->__construct('gdc:gdcwdl:wd:l...')
			#4 /home/dssandb1/public_html/ag/application/src/Api/Adapter/MediaAdapter.php(170): Omeka\Media\Ingester\IIIF->ingest(Object(Omeka\Entity\Media), Object(Omeka\Api\Request), Object(Omeka\Stdlib\ErrorStore))
			#5 /home/dssandb1/public_html/ag/application/src/Api/Adapter/AbstractEntityAdapter.php(643): Omeka\Api\Adapter\MediaAdapter->hydrate(Object(Omeka\Api\Request), Object(Omeka\Entity\Media), Object(Omeka\Stdlib\ErrorStore))
			#6 /home/dssandb1/public_html/ag/application/src/Api/Adapter/ItemAdapter.php(306): Omeka\Api\Adapter\AbstractEntityAdapter->hydrateEntity(Object(Omeka\Api\Request), Object(Omeka\Entity\Media), Object(Omeka\Stdlib\ErrorStore))
			#7 /home/dssandb1/public_html/ag/application/src/Api/Adapter/AbstractEntityAdapter.php(643): Omeka\Api\Adapter\ItemAdapter->hydrate(Object(Omeka\Api\Request), Object(Omeka\Entity\Item), Object(Omeka\Stdlib\ErrorStore))
			#8 /home/dssandb1/public_html/ag/application/src/Api/Adapter/AbstractEntityAdapter.php(354): Omeka\Api\Adapter\AbstractEntityAdapter->hydrateEntity(Object(Omeka\Api\Request), Object(Omeka\Entity\Item), Object(Omeka\Stdlib\ErrorStore))
			#9 /home/dssandb1/public_html/ag/application/src/Api/Manager.php(224): Omeka\Api\Adapter\AbstractEntityAdapter->create(Object(Omeka\Api\Request))
			#10 /home/dssandb1/public_html/ag/application/src/Api/Manager.php(78): Omeka\Api\Manager->execute(Object(Omeka\Api\Request))
			#11 /home/dssandb1/public_html/ag/application/src/Mvc/Controller/Plugin/Api.php(99): Omeka\Api\Manager->create('items', Array, Array, Array)
			#12 /home/dssandb1/public_html/ag/application/src/Controller/Admin/ItemController.php(215): Omeka\Mvc\Controller\Plugin\Api->create('items', Array, Array)
			#13 /home/dssandb1/public_html/ag/vendor/laminas/laminas-mvc/src/Controller/AbstractActionController.php(71): Omeka\Controller\Admin\ItemController->addAction()
			#14 /home/dssandb1/public_html/ag/vendor/laminas/laminas-eventmanager/src/EventManager.php(319): Laminas\Mvc\Controller\AbstractActionController->onDispatch(Object(Laminas\Mvc\MvcEvent))
			#15 /home/dssandb1/public_html/ag/vendor/laminas/laminas-eventmanager/src/EventManager.php(179): Laminas\EventManager\EventManager->triggerListeners(Object(Laminas\Mvc\MvcEvent), Object(Closure))
			#16 /home/dssandb1/public_html/ag/vendor/laminas/laminas-mvc/src/Controller/AbstractController.php(97): Laminas\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Laminas\Mvc\MvcEvent))
			#17 /home/dssandb1/public_html/ag/vendor/laminas/laminas-mvc/src/DispatchListener.php(132): Laminas\Mvc\Controller\AbstractController->dispatch(Object(Laminas\Http\PhpEnvironment\Request), Object(Laminas\Http\PhpEnvironment\Response))
			#18 /home/dssandb1/public_html/ag/vendor/laminas/laminas-eventmanager/src/EventManager.php(319): Laminas\Mvc\DispatchListener->onDispatch(Object(Laminas\Mvc\MvcEvent))
			#19 /home/dssandb1/public_html/ag/vendor/laminas/laminas-eventmanager/src/EventManager.php(179): Laminas\EventManager\EventManager->triggerListeners(Object(Laminas\Mvc\MvcEvent), Object(Closure))
			#20 /home/dssandb1/public_html/ag/vendor/laminas/laminas-mvc/src/Application.php(325): Laminas\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Laminas\Mvc\MvcEvent))
			#21 /home/dssandb1/public_html/ag/index.php(21): Laminas\Mvc\Application->run()
			#22 {main}

That IIIF image URL seems to work fine.

What URL are you inputting when you’re trying to create this IIIF image media? The error message you’re getting suggests that you’re not inputting the URL you posted in your first message (starting https://tile.loc.gov/image-services), but only a later part of it. Maybe you’re having an issue when trying to copy and paste the URL, or something like that?

Check the “IIIF image URL” field to make sure it contains the whole URL before submitting when you try again.

This is the URL I’m using: https://tile.loc.gov/image-services/iiif/service:gdc:gdcwdl:wd:l_:10:69:0:wdl_10690:ms_vind_gr_1_038b/info.json

And when I tried again just now, I received a 403 error–so I’m getting that now with both the manifest URI and the image URI.

All I can say is that the two URLs you included, the image URL using “IIIF image” and the presentation manifest URL using “IIIF presentation,” both work fine for me.

I’m fairly confident that the “gdc” and “vice” errors you mentioned before have to do with an incorrect input of the URL with the beginning missing. The 403s, those I can’t speak to. It’s possible you’re being blocked or rate-limited on the LoC end of things. I suppose.

For another perspective, I was able to bring it into in our instance:

1 Like

(Sorry, using https://tile.loc.gov/image-services/iiif/service:gdc:gdcwdl:wd:l_:10:69:0:wdl_10690:ms_vind_gr_1_038b/info.json as the URI)

Thanks for checking this for me. I’ve reached out to the LC to ask if they are aware of any 403 issues for their IIIF URIs. I’m also checking with my sys admin.